js注意点(一)

原始(Primitive)类型

在js中,存在着6中原始值,分别是:undefined,null,string,number,boolean,在es6中新增了一种基本数据类型为symbol。
原始数据都为值类型,是没有函数可以调用的,比如undefined.toString()
‘1’.toString() 是可以使用的。其实在这种情况下,‘1’ 已经不是原始类型了,而是被强制转换成了 String 类型也就是对象类型,所以可以调用 toString 函数。
这里需要注意的是,null这个类型是属于原始数据类型,即使typeof输出的结果为Object。

其实这是js存在很久的bug,这只是 JS 存在的一个悠久 Bug。
在 JS 的最初版本中使用的是 32 位系统,为了性能考虑使用低位存储变量的类型信息,000 开头代表是对象,然而 null 表示为全零,所以将它错误的判断为 object 。虽然现在的内部类型判断代码已经改变了,但是对于这个 Bug 却是一直流传下来。

= = 与 = = =

想必大家都知道两个等号与三个等号的区别,两个等号代表值相等,三个等号判断类型与值是否都相等,其实在开发中除了null外,其他的都应该使用===进行判断,下面放出一些使用两个等号相等的特殊案例

100 == '100' ;      // true
0 == '';            // true
0 == false;         // true
false == '';        // true
null == undefined;  // true
null === undefined  //false

下面是使用null判断的实例

var obj = { x: 100 };
console.log(obj.a==null) //true
console.log(obj.a===undefined) //true

if语句的判断条件

在js中,if(condition){},条件语句的判断为最终为truly变量与falsely变量,什么为truly变量,什么又是falsely变量,下面我将举出一些特定的例子

!!0 === false;
!!false === false;
!!"" === false;
!!NaN === false;
!!undefined === false;
!!null === false;

逻辑判断语句

console.log(10 && 0 ) // 0
console.log('' || 'abc') // abc
console.log(!window.abc) // true

从上面的代码可以看出,使用&&运算时取第一个falsely变量的值,使用||运算时取第一个truly变量的值,使用&&运算时,当所有条件都为true时,返回最后一个,使用或运算时,当所有条件都为false时,也返回最后一个。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值