[剖析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.引用类型,敬请期待
[剖析Javascript原理]1.原生数据类型的更多相关文章
- 浏览器解析JavaScript原理
1.浏览器解析JavaScript原理特点: 1.跨平台 2.弱类型 javascript 定义的时候不需要定义数据类型,数据类型是根据变量值来确定的. var a = 10; 数字类型 ...
- java系列之 原生数据类型
在我看来,java里面里面除了原生类型不是对象,其他的都是对象.但java是面向对象的语言,很多地方还要要操作对象,所以java会自动把原生类型转为对应的包装类型.这个过程叫自动装箱.有装箱就有拆箱, ...
- JAVA 1.3 (原生数据类型 Primitive Data Type)续
1. 原生数据类型一共有4类8种 >> 整数类型 int表示一个int代表32位 2^32(-2147483648 - 2147483647) >> 字符类型 byte 表示一 ...
- JAVA 1.2(原生数据类型 Primitive Data Type)
1. Java的数据类型分为2类 >> 原生数据类型(primitive data type) >> 引用数据类型(reference data type) 3. 常量和变量 ...
- JavaScript学习10 JS数据类型、强制类型转换和对象属性
JavaScript学习10 JS数据类型.强制类型转换和对象属性 JavaScript数据类型 JavaScript中有五种原始数据类型:Undefined.Null.Boolean.Number以 ...
- JavaScript调用App原生代码(iOS、Android)通用解决方案
实际场景 场景:现在有一个H5活动页面,上面有一个登陆按钮,要求点击登陆按钮以后,唤出App内部的登录界面,当登录成功以后将用户的手机号返回给H5页面,显示出来.这个场景应该算是比较完整的一次H5中的 ...
- 理解JavaScript的数值型数据类型
分享一些在JavaScript中遇到的一些实用的技巧. 理解JavaScript的数值型数据类型 JavaScript的数值型数据类型只有一种:number.即不管是整数还是浮点数,JavaScrip ...
- Java中的原生数据类型
Java中的原生数据类型(Primitive DataType)共有8种: 1)整型: 使用int表示(32位).2)字节型: 使用byte表示(从-128到127之间的256个整数).3)短 ...
- JavaScript 基础 (变量声明, 数据类型, 控制语句)
创建: 2017/09/16 更新: 2017/09/24 更改标题 [JavaScript 概要]-> [JavaScript 基础] 完成: 2017/09/25 更新: 2017/10/0 ...
随机推荐
- WPF基础
1.Sender 指的是被点击的控件.默认为object类. private void btnc1_Click(object sender, RoutedEventArgs e) { Button b ...
- 几个Python oj的网站
http://www.rqnoj.cn/ http://www.pythontip.com/
- Java中创建对象的5种方式 &&new关键字和newInstance()方法的区别
转载:http://www.kuqin.com/shuoit/20160719/352659.html 用最简单的描述来区分new关键字和newInstance()方法的区别:newInstance: ...
- 记一次dedeCMS网站搭建全过程
Step 1 使用阿里云Windows Server 2012服务器 { 使用远程桌面进行操作,ip admin pwd登录 } Step 2 下载安装phpStudy包 { 下载安装,直接安装到C盘 ...
- bash基础知识
站在用户登录的角度来说,SHELL的类型:登录式shell: 正常通常某终端登录 su - USERNAME su -l USERNAME 非登录式shell: su USERNAME 图形终端下打开 ...
- zoj1027 Human Gene Functions
一道动态规划,两个串进行匹配,不同字母匹配的值不一样,也可以和空格匹配(空格不能与空格匹配),求最大的匹配值. 数据很弱,每个串都在100以内. 定义dp[i][j]为第一个串前i个数和第二个串前j个 ...
- 新浪SAE数据库信息(用户&密码&主地址)
用户名 : SAE_MYSQL_USER密 码 : SAE_MYSQL_PASS主库域名 : SAE_MYSQL_HOST_M从库域名 : SAE_MYSQL_HOST_S端 口 : SAE_MYS ...
- 关于google CDN 在中国访问不了的解决办法
因原网站的script部分使用了google CDN,导致在中国看不了跟google相关的所有东西 解决方法: 得把google CDN 连接改成其他公司的CDN 例: 修改前:<script ...
- 使用SecureCRT网络连接树莓派
为了更加方便可以通过网络来连接.控制树莓派,使用SecureCRT可以通过网络来连接树莓派. 1.在树莓派上通过终端命令ifconfig 来查看当前树莓派的IP地址: IP地址 ...
- VB2012读取xml
上回谢了生成写xml的,现在把读取的补上 文件如下 <?xml version="1.0" encoding="UTF-8" standalone=&qu ...