您的位置:首页 > Web前端 > JavaScript

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代替,如果太多了,会被忽略。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  javascript 类型 比较