javascript(注意点) 数据类型和变量
来源:互联网 发布:python matlab eval 编辑:程序博客网 时间:2024/06/03 15:02
实际上,JavaScript允许对任意数据类型做比较:
false == 0; // truefalse === 0; // false
要特别注意相等运算符==
。JavaScript在设计时,有两种比较运算符:
第一种是==
比较,它会自动转换数据类型再比较,很多时候,会得到非常诡异的结果;
第二种是===
比较,它不会自动转换数据类型,如果数据类型不一致,返回false
,如果一致,再比较。
由于JavaScript这个设计缺陷,不要使用==
比较,始终坚持使用===
比较。
另一个例外是NaN
这个特殊的Number与所有其他值都不相等,包括它自己:
NaN === NaN; // false
唯一能判断NaN
的方法是通过isNaN()
函数:
isNaN(NaN); // true
Number
JavaScript不区分整数和浮点数,统一用Number表示,以下都是合法的Number类型:
123; // 整数1230.456; // 浮点数0.4561.2345e3; // 科学计数法表示1.2345x1000,等同于1234.5-99; // 负数NaN; // NaN表示Not a Number,当无法计算结果时用NaN表示Infinity; // Infinity表示无限大,当数值超过了JavaScript的Number所能表示的最大值时,就表示为Infinity
最后要注意浮点数的相等比较:
1 / 3 === (1 - 2 / 3); // false
这不是JavaScript的设计缺陷。浮点数在运算过程中会产生误差,因为计算机无法精确表示无限循环小数。要比较两个浮点数是否相等,只能计算它们之差的绝对值,看是否小于某个阈值:
Math.abs(1 / 3 - (1 - 2 / 3)) < 0.0000001; // true
JavaScript的设计者希望用null
表示一个空的值,而undefined
表示值未定义。事实证明,这并没有什么卵用,区分两者的意义不大。大多数情况下,我们都应该用null
。undefined
仅仅在判断函数参数是否传递的情况下有用。
数组是一组按顺序排列的集合,集合的每个值称为元素。JavaScript的数组可以包括任意数据类型。例如:
[1, 2, 3.14, 'Hello', null, true];
上述数组包含6个元素。数组用[]
表示,元素之间用,
分隔。
另一种创建数组的方法是通过Array()
函数实现:
new Array(1, 2, 3); // 创建了数组[1, 2, 3]
然而,出于代码的可读性考虑,强烈建议直接使用[]
。
数组的元素可以通过索引来访问。请注意,索引的起始值为0
:
var arr = [1, 2, 3.14, 'Hello', null, true];arr[0]; // 返回索引为0的元素,即1arr[5]; // 返回索引为5的元素,即truearr[6]; // 索引超出了范围,返回undefined
对象
JavaScript的对象是一组由键-值组成的无序集合,例如:
var person = { name: 'Bob', age: 20, tags: ['js', 'web', 'mobile'], city: 'Beijing', hasCar: true, zipcode: null};
- javascript(注意点) 数据类型和变量
- JavaScript基本数据类型注意点
- javaScript数据类型和变量需要注意的几个细节
- JavaScript全局变量和局部变量的使用注意点
- JavaScript数据类型的一些注意点(2)
- JavaScript数据类型的一些注意点(3)
- JavaScript数据类型的一些注意点(4)
- Javascript数据类型和变量
- JavaScript数据类型和变量
- javascript变量和数据类型
- javascript变量和数据类型
- JavaScript变量和数据类型
- JavaScript-数据类型和变量
- JavaScript数据类型的几个注意点
- JavaScript数据类型的一些注意点
- javaScript 笔记 (二)变量 和 数据类型
- 关于javaScript变量的注意点
- JavaScript的数据类型和变量
- DllImportAttribute.EntryPoint 字段
- 全排列 回溯
- 关于虚拟机kali 装搜狗输入法的二三事
- 解决eclipse和git集成不上的问题
- Java用webSocket实现tomcat的日志实时输出到web页面
- javascript(注意点) 数据类型和变量
- rem.js
- No mapping found for HTTP request with URI
- CallingConvention 成员
- Android--焦点问题以及讨论事件传递机制问题(结合部分相关源码)
- win10家庭版下面修改配置host文件虚拟主机
- 安卓复习之旅—使用NDK进行JNI编程
- Android的死机、重启问题分析方法
- 安卓高级组件-------选项卡