你不知道的javascript (中)

xiaoxiao2021-02-28  95

一、类型(js属于弱类型或没有类型)

1、js的七种内置类型:

空值(Null)未定义(Undefined)布尔值(Boolen)数字(Number)字符串(String)对象(Object)符号(Symbol,es6中新增) 除了object以外,都属于基本类型,可以用typeof查看类型。需特别注意的是typeof null === “object” ;   //true 还有另外一种特例:typeof function a(){ /* .. */ } === "function"; // true 2、在程序中检查全局变量DEBUG才不会出现ReferenceError错误,以下这种写法是typeof 安全防范机制: if(typeof DEBUG !== "undefined") { console.log("AAAA") } 3、数组 var a = [ ]; a["13"] = 42; a.length; // 14 注意:如果字符串键值能够被强制转换成十进制数字的话,它会被当做数字索引来处理。 4、类数组 将类数组转换成真正的数组,一般通过数组工具函数indexOf(),concat(),forEach()等。 indexOf()可返回某个指定的字符串值在字符串中首次出现的位置。 concat()用于连接两个或者多个数组。 slice()可从已有的数组中返回选定的元素。 5、特殊数值 A、undefined和null null指空值或曾赋过值,但目前没有值undefined指没有值或从未赋值

B、void()运算符

可以用void 0来替代undefined客户端URL, <a href="javascript:void window.open();">打开一个新窗口</a 阻止默认事件 <a href="http://example.com" οnclick="f();return false;">文字</a> //一般写法<a href="javascript:void(f())">文字</a> //使用void运算符替代上面的写法

6、零值

JSON.parse()在一个字符串中解析出JSON对象;JSON.stringify()将一个JSON对象转换成字符串;jQuery.parseJSON()将格式完好的json字符串转化为与之对应的js对象JSON.stringify(-0) 返回"0",而JSON.parse("-0") 返回-0。 7、特殊等式 判断NaN和自身相等,使用Number.isNaN();判断+0和-0使用isNegZero();判断两个值是否绝对相等,使用Object.is(); 8、引用 function foo(x) { x.push( 4 ); x; // [1,2,3,4] // 然后 x = [4,5,6]; x.push( 7 ); x; // [4,5,6,7] } var a = [1,2,3]; foo( a ); a; // 是[1,2,3,4],不是[4,5,6,7] 此例中将引用a的一个副本赋值给X,而a仍然指向[1,2,3]。函数中引用x来更改数组的值,但X=[4,5,6]并不影响a的指向。

转载请注明原文地址: https://www.6miu.com/read-32832.html

最新回复(0)