数据类型,运算符,流程控制语句

1.JavaScript 定义了几种数据类型? 哪些是原始类型?哪些是复杂类型?原始类型和复杂类型的区别是什么?
JavaScript定义了number,string,boolean,null,undefined,object,以及es6的symbol,其中number、string、boolean是原始类型值,即它们是最基本的数据类型,不能再细分了。
object称为复杂类型,因为一个对象往往是多个原始类型的值的合成,可以看作是一个存放各种值的容器。
至于undefined和null,一般将它们看成两个特殊值。
二者却别在于:

  1. 基本类型变量存的是值,复杂类型的变量存的是内存地址。

  2. 基本类型在赋值的时候拷贝值,复杂类型在赋值的时候只拷贝地址,不拷贝值。

参考文章

2.typeof和instanceof的作用和区别?
typeof只能返回number,boolean,string,underfined,function,object类型
注意: typeof null会返回Object
instanceof是用来判断一个变量是不是一个对象的实例


'123' instanceof String // false
var a=new String('123')
a instanceof String //true

判断数据类型的终极办法 Object.prototype.toString.call()

3.如何判断一个变量是否是数字、字符串、布尔、函数
typeof a=='number' 'string' 'boolean' 'function'
foo instanceof Function //判断函数

4.NaN是什么? 有什么特别之处?
NaN表示非数字,他与任何值都不想等包括他自己,要判断一个值是不是NaN的方法为:isNaN(NaN)//true

5.如何把非数值转化为数值?
Number()函数和parseInt() parsefloat()函数

6.==与===有什么区别
==只判断数据内容是否相等,===还判断数据的类型是否相等

7.break与continue有什么区别
break作用是语句执行到break后跳出循环
continue作用是执行到continue后跳过本次循环执行下次循环

8.void 0 和 undefined在使用场景上有什么区别
void作用是执行一个表达式返回值为undefined
因为当某些场景下undefined可以被赋值,那么undefined就不能被作为比较的对象,而void 0 始终返回的使undefined,所以用void 0来代替undefined

你可能感兴趣的:(数据类型,运算符,流程控制语句)