JavaScript 中的类型和比较
2016-02-02 10:44
573 查看
JavaScript类型
==和===,两个等号与三个等号
三个等号会判断类型是否一致,类型不一致直接返回false,类型一致继续判断值或者引用是否一致。于是就有了:
null === undefined; false null == undefined; true
两个等号下,如果类型一致,那么表现同三个等号,类型不同的话,会进行类型转换之后再进行比较,规则:
null==undefined
字符串和数字进行比较会把字符串转换成数字后进行比较
Boolean中的true和false分别转换成1和0进行比较
对象跟数值或者字符串进行比较会把对象转成对应的数值或者字符串的值再进行比较
数字类型
JavaScript不区分整数和浮点数,都是用双精度64位浮点数进行表示的。不过具体的实现中,通常会把整数当做32位整型变量。可以用内置的parseInt()函数将字符串转换成整数,可以用第二个参数表示进制,默认是十进制
parseInt("123", 10); 123 parseInt("23333"); 23333
如果给定的字符串不存在数值形式,会返回一个特殊的值NaN(Not a Number)。把NaN进行任何的数值运算,结果也是NaN。判断是否是NaN只能用isNaN()来进行,不能用==
NaN==NaN; false isNaN(NaN); true
还有两个特殊值,正无穷(Infinity,1/0)和负无穷(-Infinity,-1/0),可以用内置函数isFinite()来判断是否为有穷的(不是Infinity,-Infinity或NaN)
isFinite(1/0); false isFinite(NaN); false isFinite(-Infinity); false
关于字符串
JavaScript中的字符串是一串Unicode字符。JavaScript中一切都是对象,String有自身的methods。"hello".length; 5 "hello world".replace("hello", "goodbye"); "goodbye world" "world".toUpperCase(); WORLD
关于null和undefined
前面已经说到null和undefined是两种不同的类型。null表示是一个空值(non-value),而undefined(未定义的)表示是一个未初始化的值。如果变量被声明,但是没有被初始化,那么它是undefined
var myVar0; myVar0; undefined var myVar1 = null; myVar1; null
对象
JavaScript中的对象可以简单地理解为一种key-value结构,像是Java中的HashMap那样。下面两种方法都可以创建一个对象,推荐使用第二种(object literal,对象字面量法):var myObject0 = new Object(); var myObject1 = {};
非常直观的:
var myObject={ "name":"myName", "age":22, "gender":"male" }
数组
JavaScript中的数组是一种特殊的对象,跟普通的对象类似,以数字作为属性名,只能通过[]来访问,具有length属性。length并不总是等于数组中元素的个数,它比最大的索引大1。访问不存在的数组索引,会返回undefined,如下。
var a=["first", "second", "third"]; a[100]="hundred"; a.length; 101 // a[99] 未定义 a[99]; undefined
数组的遍历:
两种方法都可以很方便地遍历数组
var a=["hello", "world", "nice"]; for(var i=0 ;i<a.length;++i){ // do something with a[i] } for(var i in a){ // do something with a[i] }
或者也可以通过forEach()方法来遍历:
var a=["hello", "world", "nice"]; a.forEach(function(currentValue, index, array){ // do something with array[index], or currentValue })
函数
函数也是一种特殊的对象,特殊在于,它是可以被调用的。function add(x, y){ var total = x + y; return total; } var add = function(x, y){ return x+y; }
函数内部可以声明自己的局部变量,return语句会结束函数,如果没有写return语句或者return没有值,那么会返回一个undefined。
参数: 调用函数的时候如果没有提供足够的参数,默认会用undefined代替,如果太多了,会被忽略。
相关文章推荐
- JQuery1——基础($对象,选择器,对象转换)
- Android学习笔记(二九):嵌入浏览器
- Android java 与 javascript互访(相互调用)的方法例子
- JavaScript演示排序算法
- javascript实现10进制转为N进制数
- oracle sql日期比较
- 2019年开发人员应该学习的8个JavaScript框架
- HTML中的script标签研究
- 对一个分号引发的错误研究
- 异步流程控制:7 行代码学会 co 模块
- ES6 走马观花(ECMAScript2015 新特性)
- JavaScript拆分字符串时产生空字符的原因
- Canvas 在高清屏下绘制图片变模糊的解决方法
- Redux系列02:一个炒鸡简单的react+redux例子
- JavaScript 各种遍历方式详解
- call/apply/bind 的理解与实例分享
- 如何创建对象以及jQuery中创建对象的方式