分享

js中的运算符

 金银宝100 2017-12-03
----------------------js中的运算符----------------------
js中运算符和Java中运算符大致相同

算术运算符: +,-,*,/,%,++,--
赋值运算符: =,+=,-=,*=,/=,%=
比较运算符: ==,!=,===,!==,>,>=,<,<=
位运算符: & , |
逻辑运算符: && ,||
前置逻辑运算符: ! (not)
三元运算符: ? :
其他运算符: typeof, delete

js中比较运算符中的 ==(或!=) 和 ===(或!==)的区别:
(1)== 是相等运算符, 比较两个值是否相等,如果比较的两个值是同一类型, 直接进行比较;
如果比较的两个值不是同一类型, 会自动转换成同一类型再比较是否相等
(2)=== 是严格相等运算符, 比较的两个值必须是同一类型, 否则直接返回false.
例如:
1 == "1" //true  先转换成同一类型再比较是否相等
1 == true //true  先转换成同一类型再比较是否相等
1 == (4-3) //true

1 === "1" //false  不是同一类型, 直接返回false
1 === "true" //false  不是同一类型, 直接返回false
1 === (4-3)  //true  同一类型,并且值相等
typeOf运算符
typeOf是一个一元运算符, 放在一个运算数之前, 这个运算数可以是任意类型的. 
它的返回值是一个字符串, 表示这个运算数的类型, 如:
var a = 100; typeOf a; //"number" (还包括任意数值和NaN)
var b = "abc"; typeOf b; //"string" (包括任意字符串)
var c = true; typeOf c; //"boolean"
var d = undefined; typeOf d; //"undefined"
var d = null; typeOf d; //"object"
typeOf后面可以跟上圆括号, 在求一个表达式的类型时,可以用圆括号括起来, 例如:
typeOf(1+"100");
这让typeOf看起来像一个函数, 注意它是一个运算符, 不是函数!

附: typeof null // "object"
上面代码表示,查询null的类型,返回结果是object(对象)。
这并不是说null的数据类型就是对象,而是JavaScript早期部署中的一个约定俗成,其实不完全正确,
后来再想改已经太晚了,会破坏现存代码,所以一直保留至今.
delete运算符
delete是一个一元运算符, 它用来删除对象属性或者数组的元素. 返回值是布尔值, 表示是否删除成功. 如:
var a = [1,2,3]; //定义一个数组
delete a[2]; //删除最后一个元素
alert(a[3]); // 最后一个元素在数组中已经不存在了

a.length; // => 3 注意, 数组的长度并没有改变, 尽管元素已经删除, 但是删除操作留下了一个"洞", 
并没有影响数组的长度, 因此数组长度仍然是3

------------------------------------------------------

js中的数据类型的转换
js中的数据类型在需要时会自动的进行类型转换, 转换时遵循如下规则:
数值类型:
转字符串类型, 直接转成对应值的字符串, 3 --> "3"
转布尔类型, 0和NaN转成false, 其他数值转成true
在需要时, 会自动转成对应的包装对象 100 --> new Number(100)

字符串:
空字符串(""): 转数值为0, 转布尔值为false
非空纯数值字符串("123"): 转数值为对应的数值, 转布尔值为true
非空非数值字符串("abc"): 转数值为NaN, 转布尔值为true
在需要时, 会自动转成对应的包装对象. "aaa" --> new String("aaa")
布尔类型:
true: 转数值为 1, 转字符串为"true"
false: 转数值为 0, 转字符串为"false"
在需要时, 会自动转成对应的包装对象.

undefined
转数值为NaN, 转字符串为"undefined", 转布尔值为false, 转对象会抛出异常!

null
转数值为 0, 转字符串为"null", 转布尔值为false, 转对象会抛出异常!

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多