您的位置:首页 > Web前端 > JavaScript

《JavaScript高级程序设计》学习笔记(1)——第三章 基本概念

2018-03-24 20:13 666 查看

语法

严格模式

严格模式是为JavaScript定义了一种不同的解析与执行模型。
严格模式中,会对不确定的行为进行处理,对不安全行为抛出错误。
在顶部或在函数中添加
"use strict";
    即启用严格模式

支持严格模式的浏览器有IE10+、FIreFox 4+、Safari 5.1+、Opera 12+、Chrome

变量

省略var操作符,即给未声明的变量赋值会使变量成为全局变量,这种写法在严格模式下会导致抛出ReferenceError错误

数据类型

typeof操作符

typeof是检测给定变量的数据类型的操作符
其返回类型是字符串
undefined未定义
boolean布尔值
string字符串
number数值
object对象或null
function函数
Safari 5及之前版本和Chrome 7及之前版本在对正则表达式调用typeof操作符时会返回“function”,其他都会返回“object”

null和undefined

null值表示一个空对象指针
null和undefined区别参考阮一峰的网络日志
只要在意在保存对象的变量还没有真正保存对象,就应该明确的让该变量保存null值

Boolean类型

各类数据对应Boolean的转换规则
数据类型转换为true的值转换为false的值
Booleantruefalse
String任何非空字符串""(空字符串)
Number任何非零数字值(包括无穷大)0和NaN
Object任何对象null
Undefined不适用undefined

Number类型

Number类型的八进制字面量在严格模式下无效,抛出错误
浮点数值小数点后为0会默认转换为整数
var floatNum1 = 1.;//小数点后面没有数值,解析为1
var floatNum2 = 10.0;//整数,解析为10
isNaN()参数可以是任何类型,函数确定是否“不是数值”。在接收到一个值之后,会尝试将这个值转换为数值
转型函数Number()可以用于任何数据类型,转换规则略
parseInt()解析八进制字面量字符串时,ECMAScript 3认为是八进制,ECMAScript 5认为是十进制
parseFloat()解析到末尾或第一个无效的小数点为止,即第一个小数点有效,第二个和之后都无效

String类型

字符串一旦创建,他们的值就不能改变

操作符

位操作符
按位非(NOT)~(本质:操作数负值减1)
按位与(AND)&
按位或(OR)|
按位异或(XOR)^
左移<<
右移>>(向右移动,保留符号位)
无符号右移>>>(数值所有32位都向右移动)
全等操作符(===)只在两个操作数未经转换就相等的情况下返回true
for-in循环使用之前,先检测确认该对象不是null或undefined
label语句可以和break或continue语句联合使用
outermost:
for(var i=0;i<10;i++){
if(i==5){
break outermost;
}
else{
continue outermost;
}
}


with语句的作用是将代码的作用域设置到一个特定对象中,为了简化多次编写同一个对象的工作
var qs = location.search.substring(1);

with(location){
var qs = search.substring(1);
}


switch语句在比较值时使用的是全等操作符,因此不会发生类型转换(例如,字符串“10”不等于数值10)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  JavaScript 前端