一.原生数据类型

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. jQuery Tags Input Plugin 插件的使用

    一个jquery开发的标签功能加强插件,可以生成或删除标签,还能对输入重复标签进行检查,和JQuery autocomplete插件配合实现自动完成功能. 官网:http://xoxco.com/pr ...

  2. iOS设计模式解析(三)适配器模式

    适配器模式:将一个类的借口转换成客户端希望的另一个接口 有一个很直观的图: 例如      :电源适配器(将110V电压转换成220V电压,其中Traget是220V电压,adaptee就是110V电 ...

  3. c# 委托 delegate

    委托是一种存储函数引用的类型,在事件和事件的处理时有重要的用途 通俗的说,委托是一个可以引用方法的类型,当创建一个委托,也就创建一个引用方法的变量,进而就可以调用那个方法,即委托可以调用它所指的方法. ...

  4. Ubuntu14.04如何备份和恢复系统

    清理Ubuntu14.04的系统的垃圾:先清空回收站,软件升级到最新.Ubuntu系统与Windows系统所采用的文件系统不同, Ubuntu系统在使用或更新过程中不会产生文件碎片和垃圾文件,所以在使 ...

  5. Centos 配置ASP.Net Core 运行环境

    一:ASP.Net Core跨平台运行,需要在Linux安装运行环境.本机器使用的Centos,下载安装地址为:https://www.microsoft.com/net/core#centos su ...

  6. javascript 获取元素宽高

    style.width,clientWidth,offsetWidth <!doctype html> <html> <head> <meta charset ...

  7. PHP文件访问技术

    <?php $file=fopen("test.txt","r"); //以只读方式打开test.txt $char=fgetc($file); echo ...

  8. Linux软件大全

    https://www.linux-apps.com/browse/cat/239/ord/latest/http://www.cnblogs.com/riskyer/p/3262745.htmlht ...

  9. 2014第11周一word样式

    今天摸索使用了word的样式替换功能感觉不错,简单记录下: 1.将某一个样式的标题统一替换为另一样式,之前一般是格式化一个个找到标题设置格式, 今天才发现可以选中标题->在浮动框上单击样式或开始 ...

  10. ArcGIS学习推荐基础教程摘录

    ###########-------------------摘录一--------------------------########### ***************************** ...