一.原生数据类型

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.原生数据类型的更多相关文章

  1. 浏览器解析JavaScript原理

    1.浏览器解析JavaScript原理特点: 1.跨平台 2.弱类型 javascript 定义的时候不需要定义数据类型,数据类型是根据变量值来确定的.    var a = 10; 数字类型    ...

  2. java系列之 原生数据类型

    在我看来,java里面里面除了原生类型不是对象,其他的都是对象.但java是面向对象的语言,很多地方还要要操作对象,所以java会自动把原生类型转为对应的包装类型.这个过程叫自动装箱.有装箱就有拆箱, ...

  3. JAVA 1.3 (原生数据类型 Primitive Data Type)续

    1. 原生数据类型一共有4类8种 >> 整数类型 int表示一个int代表32位 2^32(-2147483648 - 2147483647) >> 字符类型 byte 表示一 ...

  4. JAVA 1.2(原生数据类型 Primitive Data Type)

    1. Java的数据类型分为2类 >> 原生数据类型(primitive data type) >> 引用数据类型(reference data type) 3. 常量和变量 ...

  5. JavaScript学习10 JS数据类型、强制类型转换和对象属性

    JavaScript学习10 JS数据类型.强制类型转换和对象属性 JavaScript数据类型 JavaScript中有五种原始数据类型:Undefined.Null.Boolean.Number以 ...

  6. JavaScript调用App原生代码(iOS、Android)通用解决方案

    实际场景 场景:现在有一个H5活动页面,上面有一个登陆按钮,要求点击登陆按钮以后,唤出App内部的登录界面,当登录成功以后将用户的手机号返回给H5页面,显示出来.这个场景应该算是比较完整的一次H5中的 ...

  7. 理解JavaScript的数值型数据类型

    分享一些在JavaScript中遇到的一些实用的技巧. 理解JavaScript的数值型数据类型 JavaScript的数值型数据类型只有一种:number.即不管是整数还是浮点数,JavaScrip ...

  8. Java中的原生数据类型

    Java中的原生数据类型(Primitive DataType)共有8种: 1)整型:     使用int表示(32位).2)字节型: 使用byte表示(从-128到127之间的256个整数).3)短 ...

  9. JavaScript 基础 (变量声明, 数据类型, 控制语句)

    创建: 2017/09/16 更新: 2017/09/24 更改标题 [JavaScript 概要]-> [JavaScript 基础] 完成: 2017/09/25 更新: 2017/10/0 ...

随机推荐

  1. T-SQL索引

    索引 使用索引可以提高查询速度,不是越多越好,会损耗存储空间.应用于出现在where子句中的列建立索引.可以使用sql server 内置工具Profiler捕捉在SQL Server实例上执行的活动 ...

  2. UVA 1343 The Rotation Game

    题意: 给出图,往A-H方向旋转,使中间8个格子数字相同.要求旋转次数最少,操作序列字典序尽量小. 分析: 用一维数组存24个方格.二维数组代表每个方向对应的7个方格.IDA*剪枝是当8-8个方格中重 ...

  3. EXT.NET常用属性

    Ext_数字输入框_Ext.form.NumberField:   <mce:script type="text/javascript"><!-- /* Ext. ...

  4. DBI && MySQL lock

    DBI: url set isolation to dirty read my $npmdb_dbh = DBI->connect("DBI:ODBC:npmdb", &qu ...

  5. LInux下安装jdk与环境配置与Webstorm的安装

    个人比较喜欢Webstorm这款软件,但是毕设要做的网站打算在Linux下做,所以就想在Linux上装个Webstorm.刚开始下载好后运行提示没有装jdk,然后apt-get install来安装还 ...

  6. PHP json_encode()函数使用

    <?php $tmp = array(); echo json_encode($tmp); //打印 [] echo "\n"; echo json_encode($tmp, ...

  7. matlab绘制函数

    >> x1=linspace(,*pi,); x2=linspace(,*pi,); x3=linspace(,*pi,); y1=sin(x1); y2=+sin(x2); y3=+si ...

  8. 窗体的扩展样式GWL_EXSTYLE用于SetWindowLong

    SetWindowLong(Handle, GWL_EXSTYLE, GetWindowLong(Handle, GWL_EXSTYLE) or WS_EX_TRANSPARENT or WS_EX_ ...

  9. Qt入门学习——Qt 5 帮助文档的使用

    Qt入门学习——Qt 5 帮助文档的使用 学习图形界面开发,肯定离不开帮助文档的使用,因为它不像 C 语言那样就那么几个函数接口,图形接口的接口可以用海量来形容,常用的我们可能能记住,其它的真的没有必 ...

  10. 不要在公共接口中传递STL容器

    最近的一个项目,是开发一个framework,提供给公司内部不同的产品线使用. 之间遇到的一个问题,就是STL容器的使用, 而结论是不要在公共接口中传递STL容器: 这里说的STL容器,但主要则是指容 ...