美文网首页
JavaScript 数据类型与变量提升

JavaScript 数据类型与变量提升

作者: 仙姑本姑 | 来源:发表于2019-12-06 15:39 被阅读0次

    1.JS 中有哪些数据类型?
    JavaScript提供了一种判定给定变量数据类型的手段——typeof操作符,对值或变量使用可以返回它的数据类型。
    最新的 ECMAScript 标准定义了 8 种数据类型:其中包括7种原始类型,原始类型的值本身无法改变。

    • Boolean类型
      Boolean对象有两个值:true和false.
      创建Boolean对象的语法:var boo=new Boolean
    • Null类型
      Null类型有一个值:null.
    • Undefined类型
      Undefined表明变量没有初始化
      Undefined有一个值:undefined
    • Number类型
      JavaScript 中只有一种数字类型:基于 IEEE 754 标准的双精度 64 位二进制格式的值(-(2^53 -1) 到 2^53 -1),当数值类型大于数值类型最大值,会出现Infinity(正无穷)-infinity(负无穷),当它们与其他数值进行算术运算,整个涮熟表达式会变为:NaN
      NaN不会与任何数值相等,可以用isNaN()判断变量是否为NaN.
    • BigInt类型
      BigInt类型是 JavaScript 中的一个基础的数值类型,可以用任意精度表示整数。使用 BigInt,可以安全地存储和操作大整数,甚至可以超过数字的安全整数限制。BigInt是通过在整数末尾附加 n 或调用构造函数来创建的。
      通过使用常量[Number.MAX_SAFE_INTEGER],可以获得可以用数字递增的最安全的值。
      BigInt不能与数字互换操作。否则,将抛出[TypeError] ;
      可以对BigInt使用运算符+、、-、*和%,就像对数字一样。
    • String类型
      JavaScript的字符串类型用于表示文本数据。它是一组16位的无符号整数值的“元素”。在字符串中的每个元素占据了字符串的位置。第一个元素的索引为0,下一个是索引1,依此类推。字符串的长度是它的元素的数量。
    • Symbol类型
      符号类型是唯一的并且是不可修改的。
      除了以上7种原始类型,还有一种:Object
    • Object对象类型
      对象其实时一组数据和功能的集合,可以使用new操作符+构造函数名来创建
      var obj = new Bojecr()
      访问一个对象的属性:
      objectName.propertyName

    2.JS Object 数据类型和其它原始类型有什么区别?

    类型 原始类型 对象类型
    不可改变 可以改变
    属性和方法 不能添加 能添加
    存储值 地址(指针)
    比较 值的比较 地址的比较

    3.谈谈你对”变量提升“的理解
    编程中,我们习惯将var a = 6;看成是同一个声明,但JavaScript把它看作是两个单独的声明,var=a是变量声明,a=6则是初始化,因此在运行中就产生了执行先后的顺序问题,这样的先后顺序就是所谓的变量提升,且只有声明的变量会被提升,初始化不会。
    JavaScript中,函数及变量的声明都将被提升到函数最顶部

    var x = 5; // 初始化 x
    var y = 7; // 初始化 y
    
    elem = document.getElementById("demo"); // 查找元素
    elem.innerHTML = x + " " + y;           // 显示 x 和 y
    

    上述实例实际运行顺序为:

    var x ; 
    var y ; 
    x = 5 ;
    y = 7 ;
    
    elem = document.getElementById("demo"); // 查找元素
    elem.innerHTML = x + " " + y;           // 显示 x 和 y
    

    输出结果为5 7

    var x = 5; // 初始化 x
    
    elem = document.getElementById("demo"); // 查找元素
    elem.innerHTML = x + " " + y;           // 显示 x 和 y
    
    var y = 7; // 初始化 y
    

    此例实际顺序为:

    var x ; 
    var y ;
    x = 5;
    
    elem = document.getElementById("demo"); 
    elem.innerHTML = x + " " + y;          
    
    y = 7; 
    

    输出结果为5 undefined

    相关文章

      网友评论

          本文标题:JavaScript 数据类型与变量提升

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