`

javaScript六大数据类型

阅读更多

JavaScript数据类型

    基本数据类型:Undefined,Null,Boolean,Number,String。

    复杂数据类型:Object。

 

    1.Undefined

    这个类型只有一个值是undefined,使用var声明了 但是没有赋值的变量

 

Js代码  收藏代码
  1. var message;  
  2. alert(message == undefined) // true  
  3. typeof message // "undefined"  

 

 

    2.Null 

    这个类型只有一个值是null,标示一个空的对象指针。

Js代码  收藏代码
  1. var message = null;  
  2. typeof message; // "null"  

 

    3.Boolean

    这个类型的值有两个 true 和 false 是区分大小写的

 

Js代码  收藏代码
  1. // 转换为true的值  
  2. var value = true;  
  3. var value2 = "hello world"; // 任何非空字符串  
  4. var value3 = 1; // 任何非零数字  
  5. var value4 = {}; // 任何对象 包括function,Object  
  6.   
  7. if (value & value2 & value3) {  
  8.     alert("value is true");  
  9. }  
  10.   
  11. // 转换为 false 的值  
  12. var value = false;  
  13. var value2 = ""; // 空字符串  
  14. var value3 = 0; // 0或NaN  
  15. var value4 = null; // null  
  16. var value5 = undefined; // undefined  
  17.   
  18. if (value & value2 & value3 & value4) {  
  19.     // 不会进来  
  20. } else {  
  21.     alert("value is false");  
  22. }  
  23.   
  24. typeof  true; // "boolean"  

   

 

    4.Number

 

Js代码  收藏代码
  1. var octalNum1 = 070;  // 八进制56  
  2. var octalNum2 = 079; // 无效的八进制——79  
  3. var octalNum3 = 08; // 无效的八进制——8  
  4. // 在严格模式下以上赋值是无效的 回导致浏览器抛出异常  
  5.   
  6. var hexNum1 = 0xA; // 十六进制的10  
  7. var hexNum2 = 0x1f; // 十六进制的31  

    4.1 浮点数值

 

    小数点后边必须包含一位数字

 

Js代码  收藏代码
  1. var floatNum1 = 1.1 或  var floatNum2 = 0.1  

    用e表示法表示数值

Js代码  收藏代码
  1. var floatNum = 3.125e7; // 31250000  

    浮点数值最高精度是17位小数

Js代码  收藏代码
  1. // 浮点预算会失去精度  
  2. var a = 0.2;  
  3. var b = 0.3;  
  4. a + b; // 0.50000000000000004  

    4.2 数值范围

 

    最小数值保存在 Number.MIN_VALUE中,值为 5e-324,最大数值保存在 Number.MAX_VALUE 中,值为1.7976931348623157e+308。

     如果计算数值超出了数值范围,这个值会被自动转成Infinity值。可以用isFinite()函数检测是否超出数值范围

Js代码  收藏代码
  1. var num = Number.MAX_VALUE + Number.MAX_VALUE; // Infinity  
  2. isFinite(num);  // false  

    4.3 NaN

 

    NaN,表示非数值(Not a Numer)是一个特殊数值,计算导致错误时会返回NaN。

    全局函数isNaN(),接受任何参数来判断这个参数“不是数值”。

    两个特性:任何涉及NaN的操作都会返回NaN,NaN与任何值都不相等。

Js代码  收藏代码
  1. NaN/10;    // NaN  
  2. NaN == NaN; //  false  
  3.   
  4. isNaN(NaN);  // true  
  5. isNaN(10);    // false (是一个数值)  
  6. isNaN("10"); // false (可以转换成数值)  
  7. isNaN("name"); // true (不能转换成数值)  
  8. isNaN(true);  // false  (可以转换成数值1)  

    4.4 数值转换

 

    有3个函数把非数字转换成数字,Number(),parseInt(),parseFloat()。

 

Js代码  收藏代码
  1. // Number()  
  2. var num1 = Number("hello world"); // NaN  
  3. var num2 = Number(""); // 0  
  4. var num3 = Number("00011"); // 11  
  5. var num4 = Number(true); // 1  
  6. var num5 = Number(false); // 0  
  7.   
  8. // parseInt()  
  9. var num1 = parseInt("1234hello world"); // 1234  
  10. var num2 = parseInt(""); // NaN  
  11. var num3 = parseInt("0xA"); // 10(十六进制数)  
  12. var num4 = parseInt(22.5); // 22  
  13. var num5 = parseInt("70"); // 70  
  14. var num6 = parseInt(true); // NaN  
  15.   
  16. var num1 = parseInt("10", 2); // 2 (按二进制解析)  
  17. var num2 = parseInt("10", 8); // 8(按八进制解析)  
  18. var num3 = parseInt("10", 10); // 10(按十进制解析)  
  19. var num4 = parseInt("10", 16); // 16(按十六进制解析)  
  20.   
  21. // parseFloat()  
  22. var num1 = parseFloat("1234hello world");  // 1234  
  23. var num2 = parseFloat("0xA"); // 0   
  24. var num3 = parseFloat("22.5"); // 22.5   
  25. var num4 = parseFloat(22.34.5); // 22.34  
  26. var num5 = parseFloat("0908.5"); // 908.5    
  27. var num6 = parseFloat("3.125e7"); // 31250000  

    5. String

 

    String类型用于表示有零或多个16位Unicode编码组成的字符序列,即字符串。

   

    5.1 字符字面量

  •     \n    // 换行
  •     \t     // 制表
  •     \b    //退格
  •     \r    //回车
  •     \\    //进纸
  •     \'    //单引号(‘)
  •     \"    //双引号(“)
  •     \xnn    //以十六进制代码表示的一个字符
  •     \unnn  //以十六进制代码表示的一个Unicode字符

    5.2 字符串的特点

 

Js代码  收藏代码
  1. var lang = "java";  
  2.   
  3. lang = lang + "Script"; // "javaScript"  
  4. lang = lang + 1.8; // "java1.8"  
  5. lang = lang + null; // "javanull"  
  6. lang = lang + undefined; // "javaundefined"  
  7. lang = lang + true; // "javatrue"  

    5.3 转换为字符串

 

    

Js代码  收藏代码
  1. var str  = "hello world";  
  2. var num  = 10;  
  3. var bool = true;  
  4. var func = function(){};  
  5. var obj1 = {};  
  6. var obj2 = new Object();  
  7. var arr1 = [];  
  8. var arr2 = ["a","b"];  
  9.   
  10. str.toString();     // "hello world"  
  11. num.toString();     // "10"  
  12. bool.toString();    // "true"  
  13. func.toString();    // "function(){}"  
  14. obj1.toString();    // "[object Object]"  
  15. obj2.toString();    // "[object Object]"  
  16. arr1.toString();    // ""  
  17. arr2.toString();    // "a,c"  
  18.   
  19. var value1 = 10;  
  20. var value2 = true;  
  21. var value3 = null;  
  22. var value4 = ;  
  23.   
  24. String(value1); // "10"  
  25. String(value2); // "true"  
  26. String(value3); // "null"   
  27. String(value4); // "undefined"  

    6.Object

 

    创建Object类型的实例

Js代码  收藏代码
  1. // 字面量方法  
  2. var o1 = {};  
  3. // new 操作符创建  
  4. var o2 = new Object();  

    每个Object实例对象都有下列属性和方法:

  •     constructor: 保存着用于创建对象的函数 —— Object()。
  •     hasOwnProperty(propertyName):检车给定的属性是否存在当前对象的实例中(不是原型中)
    Js代码  收藏代码
    1. var O = {  
    2.     "name": "zhang san",  
    3.     "age": 25  
    4. };  
    5. O.hasOwnProperty("name");  // true   
  •     isPrototypeOf(object):用于检查一个对象是否存在于另一个对象的原型链上。
    Js代码  收藏代码
    1. // 定义函数对象  
    2. function Foo() {}  
    3. function Baz() {}  
    4. // 继承Foo的原型  
    5. Baz.prototype = Object.create(Foo.prototype);  
    6. // 创建一个新对象  
    7. var baz = new Baz();  
    8. // 检查baz是否继承自Foo  
    9. Foo.prototype.isPrototypeOf(baz); // true   
  • propertyIsEnumerable(propertyName):用于检查给定属性是否能用for-in语句来枚举。
    Js代码  收藏代码
    1. var o = {};  
    2. var a = [];  
    3. o.prop = 'is enumerable';  
    4. a[0] = 'is enumerable';  
    5.   
    6. o.propertyIsEnumerable('prop');   // true  
    7. a.propertyIsEnumerable(0);    // true  
    8.   
    9. a = ['is enumerable'];  
    10. a.propertyIsEnumerable(0);          // 返回 true  
    11.   
    12. // 内置对象的属性不能被枚举  
    13. Math.propertyIsEnumerable('random');   // 返回 false  
    14.   
    15. /***********************自身属性和继承属性****************************/  
    16. // 自身属性不能被枚举  
    17. var a = ['is enumerable'];  
    18. a.propertyIsEnumerable('constructor') // 返回 false  
    19. a.propertyIsEnumerable('length');   // 返回 false  
    20.   
    21.   
    22. function firstConstructor() {  
    23.   this.property = 'is not enumerable';  
    24. }  
    25.   
    26. firstConstructor.prototype.firstMethod = function() {};  
    27.   
    28. function secondConstructor() {  
    29.   this.method = function method() { return 'is enumerable'; };  
    30. }  
    31.   
    32. secondConstructor.prototype = new firstConstructor;  
    33. secondConstructor.prototype.constructor = secondConstructor;  
    34.   
    35. var o = new secondConstructor();  
    36. o.arbitraryProperty = 'is enumerable';  
    37.   
    38. o.propertyIsEnumerable('arbitraryProperty');   // 返回 true  
    39. o.propertyIsEnumerable('method');              // 返回 true  
    40. o.propertyIsEnumerable('property');            // 返回 false  
    41.   
    42. o.property = 'is enumerable';  
    43.   
    44. o.propertyIsEnumerable('property');            // 返回 true  
    45.   
    46. // 这些返回fasle,是因为,在原型链上propertyIsEnumerable不被考虑  
    47. // (尽管最后两个在for-in循环中可以被循环出来)。  
    48. o.propertyIsEnumerable('prototype');   // 返回 false (根据 JS 1.8.1/FF3.6)  
    49. o.propertyIsEnumerable('constructor'); // 返回 false  
    50. o.propertyIsEnumerable('firstMethod'); // 返回 false   
  • toLocaleString(): 返回调用 toString() 的结果。
  • toString(): 返回对象的字符串表示
  • valueOf():返回对象的字符串,数值或布尔值表示,通常与toString()返回值相同

 

*本文转载自:http://y328771518.iteye.com/blog/2418624

分享到:
评论

相关推荐

    Javascript如何判断数据类型和数组类型

    js六大数据类型:number、string、object、Boolean、null、undefined string: 由单引号或双引号来说明,如”string” number:什么整数啊浮点数啊都叫数字,你懂的~ Boolean: 就是true和false啦 undefined:未定义...

    javascript入门经典第6版

    资源名称:...第二部分“Javascript编程”,包括第4章到第7章,介绍了Javascript的数据类型,例如数值、字符串和数组;以及较为复杂资源太大,传百度网盘了,链接在附件中,有需要的同学自取。

    javascript参考文件.chm

    宽松类型意味着您不必显式定义变量的数据类型。事实上 JScript 更进一步。您无法在JScriot上明确地定义数据类型。此外,在大多数情况下,JScript 将根据需要自动进行转换。例如,如果将一个数值添加到由文本组成的某...

    精通JavaScript+jQuery Part1

     2.3 数据类型  2.3.1 字符串 . 2.3.2 数值  2.3.3 布尔型  2.3.4 类型转换  2.3.5 数组  2.4 关键字  2.5 保留字  2.6 条件语句  2.6.1 比较操作符  2.6.2 逻辑操作符  2.6.3 if语句  ...

    最常用的javascript验证

    宽松类型意味着您不必显式定义变量的数据类型。事实上 JScript 更进一步。您无法在JScriot上明确地定义数据类型。此外,在大多数情况下,JScript 将根据需要自动进行转换。例如,如果将一个数值添加到由文本组成的某...

    客户端统一验证JavaScript函数库及示例源码

    ChkInputs.js应运而生,使用它不需要编写多少代码,只需对验证元素简单配置一下即可,使用方便,也不会影响页面的布局,并可以精确判断客户端输入框的长度、必填、数据类型(整数型、浮点型、字母型、数字字母混合型)...

    javascript入门笔记

    条件是一个boolean类型的数据,如果条件结果为true,则执行表达式1的内容,并将表达式1的结果作为整体表达式的结果。如果条件为false,则执行表达式2的内容,并将表达式2的结果作为整体表达式的结果 ex: var age ...

    ArcGIS API for JS高级开发.pdf

    六、ArcGIS API for JavaScript自定义图层视图 * 从4.7版本开始,JSAPI引入了一个新的LayerView基类,进一步允许用户通过自定义图层的视图来扩展定制更多的UI呈现。 * LayerView在二维和三维中分别有不同的实现。 ...

    Web前端高级作业一.txt

    这里面的数据是弱数据类型 有顺序结构、循环结构、条件结构 还可以写函数,外还可以写拼接,点击按钮给表格加一行 BOM和DOM内置元素 还有封装的jQuery,里面也有选择器 还有各种数据库用来存储数据 Ajax

    《Java基础入门》-课后习题答案--1-6.doc

    Java数据类型可以分为两大类:基本数据类型和引用数据类型。 基本数据类型包括byte、short、int、long、float、double、char、boolean等八种类型。每种类型都有其特定的取值范围和存储空间大小。 引用数据类型包括...

    ExtJS4中文教程2 开发笔记 chm

    JavaScript类型总览 JavaScript获取文本框光标的像素位置 js函数match、exec、test、search、replace、split使用介绍 技巧:Javascript使用隐藏的new来创建对象 禁止页面全选复制,兼容多种浏览器

    学习js

    类型弱(可变数据类型可以在执行时间中更改) 多范式(结构化,OOP,功能性) 区分大小写(计数变量不同于计数一) 每行末尾不需要分号 蛇案 档案my_file_javascript.js 大写 常数 const PI = 3.14165926 上驼...

    birt帮助文档中文版

    如何设置轴的数据类型和格式 如何更改图表预览首选项 第十六章、对图表进行布局和格式化 如何设置图表背景色 如何定义定制颜色 如何为具有深度的图表或三维图表设置墙体色或地板色 如何设置图表区嵌入 ...

    birt中文帮助文档

    如何设置轴的数据类型和格式 如何更改图表预览首选项 第十六章、对图表进行布局和格式化 如何设置图表背景色 如何定义定制颜色 如何为具有深度的图表或三维图表设置墙体色或地板色 如何设置图表区嵌入 如何为图形...

    Java语言基础下载

    基本Java数据类型 50 变量声明和赋值 52 引用(Reference)类型 52 存储器分配和布局 53 this引用 55 Java编码约定 56 运算符的优先级 58 升级和表达式的类型转换 62 独立实践 70 第五章:数组 71 学习目标 71 数组...

    typescript-redux:TypeScript,React + Redux中的冒险

    具有可选类型,高级语言功能和低级ES5支持JavaScript的超集 -JavaScript软件包管理器,支持SystemJS模块以及多个npm和GitHub存储库 -程序包管理器以搜索和安装TypeScript定义文件 利用虚拟DOM和React式数据流的...

    《10天掌握MongoDB》2012完整版.pdf[带书签]

    MONGODB的数据类型 MONGODB的基本数据类型 MONGODB的数组 MONGODB的文档嵌套 MONGODB的OBJECTID 结束语 第二天:初识增删改 添加文档 删除文档 更新文档-文档更换1 更新文档-文档替换2 更新文档-UPSERT模式 更新文档...

Global site tag (gtag.js) - Google Analytics