+
:转换成数字
~
:按位求反,相当于改变符合并且减一
void
:返回undefined
值
<<
:左移位
>>
:右移位
>>>
:无符号右移
intanceof
:测试对象类
in
:测试属性书否存在
^
:桉位或与
'
:忽略第一个操作数,返回第二个操作数
NaN===NaN //false
可以通过
x!==x;//true
来判断该变量是否为NaN
NaN 比较操作返回都是false
String 比较
- localCompare:字符串比较,区分字母大小写
stringObject.localeCompare(target)
说明比较结果的数字。如果 stringObject 小于 target,则 localeCompare() 返回小于 0 的数。如果 stringObject 大于 target,则该方法返回大于 0 的数。如果两个字符串相等,或根据本地排序规则没有区别,该方法返回 0。 - toLowerCase
- toUpperCase
'Zoo'<'aardvark' //true
'Zoo'.toLocaleUpperCase()< 'aardvark'.toLocaleUpperCase()//false
'11'<'3'//true
'11'<3//false
'one'<3//false
&&
计算方向是从左边到右边,如果左边是false
则返回左边值,如果左边值是true
,则返回右边值
&&
运算返回的值不一定都是boolean
值
var d = new Date();
'ddd'&&d //Mon Nov 09 2015 21:26:00 GMT+0800 (中国标准时间)
0&&d //0
NaN && d //NaN
in 运算符
var point ={x:1,y:2};
'x' in point //true 对象里有一个x对象
'z' in point //false
'toString' in point //true 对象继承了toString方法
var data = [7,8,9];
'0' in data //true 转换成 '0' 索引值
1 in data //true 数字转换成字符串
3 in data
instanceof 运算符
var d = new Date();
d instanceof Date //true
d instanceof Object //true
d instanceof Number //false
eval
局部eval 和全局 eval ECMAScript5有上下文作用域在3版本是不允许给eval设置别名。
var geval =eval;
var x ='g',y='g';
function f(){
var x = 'local';
eval('x+=" changed";');
return x;
}
function g(){
var y = 'local';
geval('y+=" changed";');
return y;
}
console.log(f(),x) // local changed g
console.log(g(),y) // local g changed
ie9 早期版本有一个全局的
eval
函数execScript()
,但是execScript
总是返回null
。
ECMAScript5
严格模式中执行代码段以use strict
指令开始,不能再局部作用域中定义新的函数和变量。是作为保留字存在
引用: