irpas技术客

JavaScript知识盲区整理_m0_53157173

未知 4082

JavaScript知识盲区整理 script标签用于引入外部js的注意点JS中严格区分大小写,并且每条语句结尾的分号如果不加,浏览器会自动加,这样会消耗浏览器资源,还容易把分号加错位置在字符串中我们可以使用\作为转义字符typeof 用来检查变量类型Number.MAX_VALUE 和 Number.MIN_VALUE获取最大值和最小值,如果自己写的超过最值范围,会返回Infinity当声明一个变量但是不给其赋值时,会返回一个undefined强制类型转换document.write(): 向Body标签体中写入数据任何值和字符串相加都会变成字符串任何值做- * /运算时都会自动转换为Number类型在网页中使用Unicode编码JS对象使用[]方式来设置属性名JS对象的属性值可以是任意的数据类型in运算符---检查对象中是否含有指定属性JS中的对象是引用数据类型,保存在堆上,而基本数据类型存储在栈上使用对象字面量{}来创建对象使用对象字面量创建对象的时候可以同时指定对象的属性 JS函数--函数也是一个对象使用函数声明来创建一个函数对象使用函数表达式来创建一个函数函数形参相关注意点函数实参可以是一个对象,JS函数也是一个对象,也可以作为函数实参传递函数返回值可以是任意数据,可以是一个对象===》包括函数对象 立即执行函数对象的属性值如果是一个方法,那么称这个属性为方法for.....in语句枚举对象中的属性 作用域全局作用域全局对象window,全局作用域中所有变量都是其属性,所有函数都是其方法var关键字声明的变量会在所有代码执行之前被声明函数声明提前函数作用域在函数中,不使用var声明的变量会变成全局变量 this使用工厂方法创建对象构造函数可以使用instanceof检查一个对象是否是一个类的实例this的三种情况原型对象 tostring---类似java,可以重写垃圾回收数组(Array)----数组也是一个对象字面量[]创建数组时可以同时指定元素构造函数创建数组时也可以指定元素 数组里面的元素可以是任意数据类型数组对象的foreach方法---需要一个函数作为参数slice和splice方法concat方法join方法reverse方法sort方法 函数对象的call和apply方法----执行函数,修改函数执行时的this指向的对象this的四种情况arguments,即使不定义形参,也可以通过arguments获取到形参包装类----解析器临时转换作用正则表达式字面量创建正则表达式 JS教程


script标签用于引入外部js的注意点 当script标签用于引入外部js文件时,就不能在标签体内部编写代码了,即使编写了浏览器也不会执行。推荐使用引入外部js的方式来编写js代码 <script type="text/javascript" src="temp.js"></script>


JS中严格区分大小写,并且每条语句结尾的分号如果不加,浏览器会自动加,这样会消耗浏览器资源,还容易把分号加错位置
在字符串中我们可以使用\作为转义字符 /* 在字符串中我们可以使用\作为转义字符 当表示一些特殊符号时可以使用\进行转义 \" 表示 " \n 表示换行 \t 表示制表符 \\ 表示\ */ var str="你好\"大忽悠\"";
typeof 用来检查变量类型 var a=123; var b="大忽悠"; alert(typeof a); alert(typeof b);


Number.MAX_VALUE 和 Number.MIN_VALUE获取最大值和最小值,如果自己写的超过最值范围,会返回Infinity alert(Number.MAX_VALUE); alert(Number.MIN_VALUE);
当声明一个变量但是不给其赋值时,会返回一个undefined
强制类型转换

js的强制类型转换


document.write(): 向Body标签体中写入数据
任何值和字符串相加都会变成字符串

本质是调用String()函数


任何值做- * /运算时都会自动转换为Number类型

在任何数据类型前使用+和-都可以隐式将其转换为Number类型

例如: 1 + +“2” +3=6

1+ “2”+3=“123”


在网页中使用Unicode编码

&#编码; ==>这里的编码需要的是10进制,unicode是十六进制


JS对象 //创建对象 var obj=new dhy(); //增加属性 obj.name="大忽悠"; obj.age=18; // 修改对象的属性 obj.name="小朋友"; //删除对象属性 delete obj.name; 使用[]方式来设置属性名

var obj=new dhy(); obj["name"]="大忽悠"; var chose="name"; alert(obj[chose]); JS对象的属性值可以是任意的数据类型 in运算符—检查对象中是否含有指定属性

JS中的对象是引用数据类型,保存在堆上,而基本数据类型存储在栈上


使用对象字面量{}来创建对象

{}和new的方式,本质上是一样的


使用对象字面量创建对象的时候可以同时指定对象的属性

var obj={ name:"大忽悠", age:18, "hobby":健身,//属性名可以加"",也可以不加 test: {name:123} //属性值是一个对象 };
JS函数–函数也是一个对象

<script type="text/javascript"> //创建一个函数对象 //将需要封装的代码以字符串的形式传递给构造函数 var func=new Function("alert(typeof func);"); //封装到函数中的代码不会立刻执行,函数中的代码会在函数调用的时候执行 //调用语法:函数对象() func(); //查看func的类型 alert(typeof func); </script>


使用函数声明来创建一个函数对象

function f1(){ alert("大忽悠"); } //调用函数 f1();
使用函数表达式来创建一个函数

var f1=function (){ alert("大忽悠"); } //调用匿名函数 f1();

创建一个匿名函数,将这个匿名函数对象赋值给一个变量


函数形参相关注意点


函数实参可以是一个对象,JS函数也是一个对象,也可以作为函数实参传递
函数返回值可以是任意数据,可以是一个对象===》包括函数对象
立即执行函数


对象的属性值如果是一个方法,那么称这个属性为方法


for…in语句枚举对象中的属性

var peo={ name:"大忽悠", age:18 } for( var attr in peo) { document.write(peo[attr]); }

[]才可以传递变量,.不行


作用域 全局作用域 全局对象window,全局作用域中所有变量都是其属性,所有函数都是其方法


var关键字声明的变量会在所有代码执行之前被声明


函数声明提前

f1();//没得问题 //函数声明形式 function f1() { } f2();//错误 //函数表达式形式,即匿名函数 var f2=function () { }
函数作用域

在函数中,不使用var声明的变量会变成全局变量

d=100; alert(d);


this

window是一个全局对象,其实就是相当于那个对象调用这个函数,那么这个函数里面的隐式参数this就是当前调用这个函数的对象


使用工厂方法创建对象 var CreatePeo=function(name,age){ var obj={ name:name, age:age }; return obj; }; var p1=CreatePeo("大忽悠1",18); var p2=CreatePeo("大忽悠2",19); var p3=CreatePeo("大忽悠3",20);
构造函数

function People() { name="大忽悠";//全局变量name this.name="大忽悠";//当前新建对象的属性name } var people=new People();
可以使用instanceof检查一个对象是否是一个类的实例


this的三种情况


原型对象

对于通过构造函数创建的对象而言,每一次创建,里面的所有变量和对象(函数对象)都会重新创建一遍,那么这样会很浪费空间

通过将该类构造方法下创建的所有对象的公共的属性和方法,统一添加到原型对象中,完成对资源的节约

function People() { this.name="大忽悠"; } //设置原型对象的属性 People.prototype.age=18; var p=new People(); alert(p.age);


tostring—类似java,可以重写

如果只重写当前对象的tostring方法,那么只对当前对象起效 如果修改当前原型的tostring,那么对当前构造函数创建的对象都有效


垃圾回收


数组(Array)----数组也是一个对象

使用typeof检查一个数组,会返回object


//创建数组对象 var arr=new Array(); //向数组中添加元素 arr[0]=123; //获取数组中的元素 alert(arr[0]); //获取数组长度 var len=arr.length;



字面量[]创建数组时可以同时指定元素

构造函数创建数组时也可以指定元素


数组里面的元素可以是任意数据类型


数组对象的foreach方法—需要一个函数作为参数


slice和splice方法


第三个参数开始的新元素,用来替换删除掉的元素


concat方法


join方法


reverse方法


sort方法


函数对象的call和apply方法----执行函数,修改函数执行时的this指向的对象


this的四种情况


arguments,即使不定义形参,也可以通过arguments获取到形参


包装类----解析器临时转换作用


正则表达式


字面量创建正则表达式


JS教程

教程


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #