zoukankan      html  css  js  c++  java
  • [剖析Javascript原理]1.原生数据类型

    一.原生数据类型

    JS共有5种原生数据类型:

    Boolean true或者false
    String 字符串,在单引号或者双引号之间(不存在字符类型)
    Number 整数或者浮点数
    Null
    undefined 未定义(一个变量没有赋值,或者 赋值为 undefined)
    //Boolean
    var flag = false;
    
    //String
    var str = 'Hello';
    var str2 = "Hello,World";
    
    //Number
    var n1 = 123;
    var n2 = 34.534;
    
    //Null
    var pointer = null;
    
    //Undefined
    var u = undefined; //直接赋值为undefined
    
    var a; //只声明,不赋值

    在传统的编程语言中,原生数据类型存在栈中,而引用类型存在堆中,但是JS彻底的抛弃了这种概念,原生数据类型保存在一个叫做变量对象(Variable Object)的对象中,而引用类型则保存在内存中。在对象变量中的原生数据类型,每个都是“独立的”,彼此之间没有任何影响。

    var apple1 = 'Red';
    var apple2 = apple1;
    
    console.log(apple1); //输出 Red
    console.log(apple2); //输出 Red
    
    apple1 = 'Green';
    
    console.log(apple1); //输出 Green
    console.log(apple2); //输出 Red

    由以上代码可以看到,跟传统语言一样,它们的赋值只是简单的拷贝。

    变量对象(Variable Object)
    apple1    Red
    apple2    Red

    二、类型判定

    判断原生数据类型最好的方法莫过于typeof,除了Null,其他都工作的挺好的

    console.log(typeof 456); //number
    console.log(typeof 456.32); //number
    console.log(typeof 'somestring'); //string
    console.log(typeof false); //boolean
    console.log(typeof undefined); //undefined
    console.log(typeof a); //undefined
    console.log(typeof null); //object
    

    typeof null 得到的结果为object,很显然,null表示的是空,空指针的意思,为什么返回object就不得而知。不过判断是否为null可以用如下代码:

    var v = null,vv = undefined;
    console.log(v === null); //true
    console.log(vv === null); //false

    显然,我是用的是===而不是==,因为==在比较值钱会进行类型的转换,而===只是进行简单的相等比较。

    console.log(5 == '5'); //true
    console.log(5 === '5'); // false
    console.log(undefined == null); //true
    console.log(undefined === null); //false
    

    三.原生方法

    null和undefined没有自带的方法,但是要记住:他们虽然有方法,但是它们不是对象(虽然看起来像对象)。

    var n = 123;
    console.log(n.toFixed(2)); // 123.00
    console.log(n.toString()); // '123'
    
    var flag = false;
    console.log(flag.toString()); // 'false'
    
    var str = 'Hello,World';
    console.log(str.toUpperCase()); //HELLO,WORLD
    

      

     下一篇:[剖析Javascript原理]2.引用类型,敬请期待

  • 相关阅读:
    advisor调优工具优化sql(基于sql_id)
    关于等待事件cursor: pin S
    队列等待之enq: TX
    HTML5+CSS3从入门到精通 中文pdf完整版[229MB] 下载
    unity 控制透明度
    unity 限制模型移动的边界
    unity监测按下键的键值并输出+unity键值
    unity EventTrigger与模型
    wpf 获取桌面上的鼠标位置
    unity 代码更换ugui中image的关联素材
  • 原文地址:https://www.cnblogs.com/hhstuhacker/p/3558816.html
Copyright © 2011-2022 走看看