[剖析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,其他都工作的挺好的
1
2
3
4
5
6
7 |
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可以用如下代码:
1
2
3 |
var
v = null ,vv = undefined; console.log(v === null ); //true console.log(vv === null ); //false |
显然,我是用的是===而不是==,因为==在比较值钱会进行类型的转换,而===只是进行简单的相等比较。
1
2
3
4 |
console.log(5 == ‘5‘ ); //true console.log(5 === ‘5‘ ); // false console.log(undefined == null ); //true console.log(undefined === null ); //false |
三.原生方法
null和undefined没有自带的方法,但是要记住:他们虽然有方法,但是它们不是对象(虽然看起来像对象)。
1
2
3
4
5
6
7
8
9 |
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.引用类型,敬请期待
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。