转为字符串: x.toString(); 或者 var a = String(x);
转为Number: x.parseInt();或者 x.parseFloat();或者var a = Number(x);
(true转为1)(null转为0)(ndefined转为NaN)
转为Boolean: var a = Boolean(x);
(非0为true,0为false)(NaN为false)(非空串都为true)(对象为true)(null,undefined为false)
1.8运算符:
任何类型的变量进行+-*/运算的时候,都会自动转换为Number类型
任何类型的变量进行&& || 运算,都会自动转为Boolwan类型
&&运算 : 如果俩都为true,返回后面的 var x = 5 && “123”则x=”123”
如果有为false的,返回第一个为false的值 var x =NaN && 0;则x=NaN
||运算 : 如果第一个为true,则返回第二个值 var x =5|| NaN; 则x=NaN
如果第一个值为false,返回第一个值 var x = 0 || “123”则x=”123”
任何类型的变量进行***\*与一个数进行\****> < >= <= 运算,都会自动转为Number类型
(string与string比较是字典序比较每一个的字符编码)(任何数与NaN比较都是false)
当字符串进行拼接的时候,var x = 1++”2“+3;则x会为6,因为+“2”自动换为Number类型
var x = 1+”2”+3;则x会为123,因为这是字符串拼接
单目运算符、双目运算符、逻辑运算符、赋值运算符、关系运算符、相等运算符、条件运算符、运算符的优先级和java有些差不多一样
在JS中==和===是有区别的,尽量利用===全等判断两个变量是否相等
变量 typeof可以判断变量的类型
变量 Instanceof 类型可以判断变量是否为该类型
1.9 对象
对象的分类: 1:内建对象:ES标准中定义的对象,如:Math Number Boolean.....
2:宿主对象:JS的运行环境提供的对象(浏览器提供的对象)BOM DOM
3:自定义对象:自己利用Object定义的对象
创建一个对象: var obj = new Object();
var obj = { };
var obj = {属性名1:属性值 ,属性名2:属性值 ,..........};
为对象添加新的属性: obj.name=”张三”;
删除一个对象的属性: delete obj.name;
调用: obj.name
检查一个对象是否该属性: “属性” in 对象 (如果对象中没有定义属性,返回对象值为underfined)
如果两个变量保存的是同一个对象,当对象变得时候,变量也会受到影响
var obj1 =new Object();
obj1.name = “张三”;
var obj1 =obj2; //此时的obj2.name =“张三”;
obj1.name = “李四”; //此时的obj2.name =“李四”;
当new的时候就会创建一个对象,调用其构造函数
1.10函数:
js中函数也是一个对象,是Function的对象,具有普通对象的一切
创建一个函数对象:
var fun = new Function(字符串形式传入该函数的实现代码); (这种方式不好)\****
function 函数名(形参1,形参2.....形参n){ 实现语句 }
var fun = function(形参1,形参2.....形参n){ 实现语句 }
(当要传的值为对象的时候,形参用o代替)
在js函数里面加上return就在该处结束函数并有返回值,还不用声明返回值类型
调用函数: 函数名(实参列表);
一定区分 var x = fun; 和 var x = fun();
当调用对象的时候,不加后面大括号实参列表,调用的为该函数对象(函数的代码实现)