数据类型
基本数据类型
1.数值类型(number)
在JS中,数值类型底层只有一种,就是浮点型
在需要的时候,JS会在浮点型和整型之间自动的进行转换
1.2+3.8=5;
Infinity正无穷大 -Infinity负无穷大
NaN(not a number)这是一个特殊值,表示非数字,NaN和任何值都不相等,包括它本身
2.字符串类型(string)
在js中,字符串属于基本数据类型
JS中的字符串常量可以使用双引号或者单引号引起来
var str1="Hello JS";
var str2='Hello JS';
charAt(0)通过索引返回指定字符
3.布尔类型(boolean)
布尔类型的值分为true和false
4.undefined
undefined类型的值只有一个是undfined
undefined表示变量未定义(其实是变量声明了指但是没有赋值)
5.null
null类型的值也只有一个是null
null表示空值,如果在函数中返回null,表示该函数返回一个空的对象
复杂数据类型
对象(函数/数组/对象)
变量及运算符
变量的定义
在JS中,是通过var关键字来声明变量运算符
//声明字符串
var str="Hello JS";
//声明数值
var num=100;
//声明函数
var fn=function(参数列表){}
//声明数组
var arr=[100,"hello",true];
//声明对象
var date1=new Date();
在JS中,通过var声明的变量本身不区分类型,变量可以指向任意数据类型。
比如:
var x='abc';
x=100;
x=true;
在js中重复声明变量,不报错,直接赋值
var a=100;
var a=50;//相当于a=50;
可以解释为
var a; a=100;
var a; a=50;
在js中使用var和不使用var的区别
在方法外声明变量时,使用var声明变量和不使用var声明变量(不使用var声明的变量在之前没有出现过)都是声明一个全局变量。使用时没有区别。
var a=10;
b=20;
在函数中声明变量,使用var声明是声明一个局部变量,不可在函数外调用
不使用var仍然是声明一个全局变量
先找上下文有没有c,如果有c直接赋值。如果没有c生成新的全局变量,给全局变量赋值
function f1(){
c=300;
}
f1();
document.write(c);
运算符
JS中的运算符与java大致相同
算术运算符: | +,-,*,/,%,++,-- |
---|---|
赋值运算符: | =,+=,-=,*=,/=,%= |
比较运算符: | ==,!=,===,!==,>,>=,<,<= |
位运算符: | & , |
逻辑运算符: | && ,|| |
前置逻辑运算符: | ! (not) |
三元运算符: | ? : |
}其他运算符: | typeof(返回变量或表达式的数据类型), delete(删除数组或删除对象的属性、方法) |
1、==和===的区别
(1)如果在比较时,比较的两个值属于同一种数据类型,此时,==和===没有区别,比较的结果是一样的。
("abc"+"de")== "abcde" // true
(100+23)==123 // true
("abc"+"de")=== "abcde" // true
(100+23)===123 // true
(2)如果在比较时,比较的两个值不属于同一种数据类型时,此时,===不予比较,直接返回false.==是先将两个值转成同一种数据类型,再比较事是否相等。
"123"==123 //true
"123"===123 //false
true==1 //true
true===1 //false
2、typeof运算符的作用
var x=123;
document.write("x is "+typeof x+"
");
x="123";
document.write("x is "+typeof x+"
");
x=true;
document.write("x is "+typeof x+"
");
document.write(typeof 123+"abc"+"
");
document.write(typeof (123+"abc")+"
");
运行结果
x is number
x is string
x is boolean
numberabc
string