js中的小细节~

1. js中null undefined “” false 0的区别

null undefined "" false 0所属什么类型
console.log(typeof null);//object
console.log(typeof undefined);//undefined
console.log(typeof "");//string
console.log(typeof 0);//number
console.log(typeof false);//boolean
共同点:
  • 在if语句中做判断,都会执行false分支。当然从广义上来看,是说明这些数值都是其对应数据类型上的无效值或空值。还有这五个值作!运算,结果全为:true
不同点
  • ''==0==false
  • undefined==null
  • 10+null结果为10
  • 10+undefined结果为NAN
  • null的类型是object,但是null不具有任何对象的特性,就是说我们并不能执行null.toString()null.constructor等对象实例的默认调用
  • “”、0和false虽然在if语句表现为"假值",可它们都是有意义数据,只是被作为了"空值"或"假值",因为:"".toString()(0).toString()false.toString()都是合法的可执行表达式
  • NaN也可以近似看做是一个空值或假值,因为任何类型的值与NAN做比较得到的都是false,包括NAN本身typeof NaNnumber
alert(0 == ''); //true
alert(0 == false); //true
alert(false == ''); //true
alert(null == undefined); //true

alert(!0); //true
alert(!false); //true
alert(!undefined); //true
alert(!null); //true
alert(!''); //true

alert(0 == undefined); //false
alert(0 == null); //false
alert(false == null); //false
alert(false == undefined);//false
alert('' == null); //false
alert('' == undefined); //false

2. js数值和字符串之间的运算

  • 数值和字符串做加法,数值被转换为字符串
  • 数值和字符串做减法、乘法、除法,字符串被转换为数字,如果字符串无法转化为数字,则与数字的运算结果为NaN

3. typeofinstanceof

typeof
  • typeof运算符返回一个用来表示表达式的数据类型的字符串
  • typeof一般返回以下几个字符串:"number", "string","boolean","object","function","undefined"。对于Array,Null等特殊对象使用typeof一律返回object,这正是typeof的局限性。
  • 可以用typeof(变量名)来检测该变量是否声明(或是否存在),如果返回值为undefined则代表该值未声明或不存在。
instanceof
  • instanceof用来检测某个对象是不是另一个对象的实例。
  • 一个对象在其原型链中是否存在一个构造函数prototype属性
发布了72 篇原创文章 · 获赞 72 · 访问量 6302

猜你喜欢

转载自blog.csdn.net/weixin_43314846/article/details/104102821
今日推荐