ECMAScript
- 基本数据类型:Undefined、Null、String、Number、Boolean
- tyepof -> 'number'、'string'、'boolean'、'object'、'undefined'、 function ,特别注意null也会返回object
- Undefined类型只有一个值为undefined,var声明变量时未初始化或者调用对象不存在的属性时即为undefined
- Null类型也只有一个值为null,从逻辑上看是表示一个对象的空指针
alert(null==undefined) //true
- Boolean
Boolean(0) //fasle
Boolean('') //false
Boolean(null) //fasle
Boolean(undefined) //fasle
- Number 最大值:Number.MAX_VALUE、最小值Number.MIN、超出范围Infinity
NaN 是一个特殊的数值,不与任何值相等
alert(NaN ==NaN ) //false
isNaN()会先尝试转换为数值,在判断是否为数值
- String类型,String()进行字符串转换时,先调用toString()返回,如果值是null返回'null',undefined返回'undefined'
var value1=null
var value2=undefined
String(value1)//'null'
String(value2)//'undefined'
- Object类型,每个object实例都存在constructor、hasOwnProperty('name')、toString、valueOf...其余没用过
var object={name:'lyf',age:22};
object.hasOwnProperty('name')//true
- 操作符
- ++自增 ;--自减
- ~按位非 ,操作数负值减一
var num1 = 25;
var num2 = -num -1;
console.log(~num1);//-26
console.log(num2);//-26
-
按位与& ; 按位或| ; 按位异或(相异为1)
-
左移 << ; 有符号的右移>> ; 无符号的右移>>>
console.log(2<< 3);//16
console.log(2>> 3);//0
console.log(16>> 3);//2
-
逻辑与&& 、逻辑或||,都是短路操作。
-
+,如果操作数都是字符串则拼接起来;如果其中一个为字符串则将另一个转换为字符串拼接起来;null和undefined->'null'和'undefined'
-
相等(先类型转换在比较)和全等(直接比较)
console.log(55=='55');//true
console.log(55==='55');//false
console.log(undefined==null)//true
console.log(undefined===null)//true
- function参数在内部使用一个数组表示(arguments),即便定义的函数接收两个参数,使用时传了3个或1个都可以,甚至0个
(function say(){
console.log(arguments);
})('value1','value2')
//->["value1", "value2"]
且值与参数名永远保持同步.
(function say(){
arguments[1]='value3'
console.log(arguments);
})('value1','value2')
//-> ["value1", "value3"]
没有重载,后定义的函数会覆盖先定义的函数。
网友评论