美文网首页
数据类型,运算符,流程控制语句

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

作者: swhzzz | 来源:发表于2017-04-16 19:08 被阅读0次

    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是用来判断一个变量是不是一个对象的实例
    <pre>
    '123' instanceof String // false
    var a=new String('123')
    a instanceof String //true
    </pre>
    判断数据类型的终极办法 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

    相关文章

      网友评论

          本文标题:数据类型,运算符,流程控制语句

          本文链接:https://www.haomeiwen.com/subject/rduaattx.html