javaScript小结

来源:互联网 发布:网络歌手娟子的歌曲 编辑:程序博客网 时间:2024/06/02 00:15

重新温习了JS,总结如下:(如有错误之处,请批评指正)

1、严格模式

设立“严格模式”的目的,主要有以下几方面:

(1)消除JavaScript语法的一些不合理、不严谨之处,减少一些怪异行为;

(2)消除代码运行的一些不安全之处,保证代码运行的安全;

(3)提高编译器效率,增加运行速度;

使用方法:

(1)将“use strict”放在脚本文件的第一行,则整个脚本都将以“严格模式”运行;

(2)将“use strict”放在函数体的第一行,则整个函数以“严格模式”运行。

因为第一种调用方法不利于文件合并,所以更好的做法是借用第二种方法,将整个脚本文件放在一个立即执行的匿名函数中,如:

(function () {

"use strict";

      // some code here

})();

2、与数组相关

(1)判断一个对象是否为数组的最好方法:

var is_array = function(value) {

return Object.prototype.toString.apply(value) === '[object Array]';

};

(2)push()、pop()、unshift()、shift()、join()的使用

var  arr = [0,1,2,3,4,5];

arr.push(6)  // 向数组的末尾添加一个或更多元素,并返回新的长度 

arr.pop()   // 删除并返回数组的最后一个元素 

arr.unshift()  // 向数组的开头添加一个或更多元素,并返回新的长度

arr.shift() // 删除并返回数组的第一个元素

arr.join() // 用数组的元素组成字符串    “0,1,2,3,4,5”

注:以上方法都会改变原数组。

3、concat()、slice()、substr()、substring()、splice()的区别

注:concat()、slice()   对于数组和字符串都能用,并且不会改变原数组/字符串

(1)concat()  可以带一个或多个参数

var arr = [1,2,3,4,5,6];

var str = "hello";

arr.concat(7)  // [1,2,3,4,5,6,7]

str.concat("world")  // "hello world'

(2)slice()、substr()、substring()的区别

var str = "hello world";

str.slice(3);  // "lo world"

str.substring(3);  // "lo world"

str.substr(3);  // "lo world"

str.slice(3,7);  // "lo w"

str.substring(3,7);  // "lo w"

str.substr(3,7);  // "lo worl"


str.slice(-3);  // "rld"   会将传入的负值与字符串的长度相加

str.substring(3);  // "lo world"    会把所有负值参数转化为0

str.substr(3);  // "lo world"  将第一个负值参数加上字符串的长度,将第二个参数转换为0

3、提交表单时应注意

(1)<button type="submit"  onclick="func()">提交</button>

当form中有onsubmit时,提交表单会执行onsubmit

(2)<button type="submit" >提交</button>

当form中有onsubmit时,提交表单会执行onsubmit

(3)<button type="button"  onclick="func()">提交</button>

当form中有onsubmit或没有,提交表单都不会执行onsubmit

(4)手动提交表单

在javaScript中,以编程方式调用submit()方式也可以提交表单。而且,这种方式无需表单包含提交按钮,任何时候都可以正常提交表单。

var form = document.getElementById("myForm');

form.submit();

以调用submit()方法的形式提交表单时,不会触发submit()事件,因此要记得在调用此方法之前先验证表单数据。

4、javaScript对象与JSON字符串互相转换

JSON.stringify()  把javaScript对象序列化为JSON字符串

JSON.parse()    把javaScript对象序列化为JSON字符串

5、用eval()把字符串变成对象形式

var str = "name:'Jone',age:12";

var obj = eval("({" + str + "})");//{ name:"Jone",age:12 } 

6、javaScript中bind()方法

bind主要是为了改变函数内部的this指向

bind方法会创建一个新函数,称为绑定函数,当调用这个绑定函数时,绑定函数会以创建它时传入bind方法的第一个参数作为this,传入bind方法的第二个以及以后的参数加上绑定函数运行数本身的参数按照顺序作为原函数的参数来调用原函数。

function add(a,b){

console.log(a+b,"this值为:" + this);

}

add.bind(1,2)(3,4);  //5 "this值为:1"

7、apply和call的区别

apply和call都是用来改变this指向,并且后面都可以传参数,但是

apply参数是以数组形式存在,call参数是用逗号隔开。

function test(a,b){

console.log(this.name,a,b);

}

test.apply({ name:"Jone" },[1,2,3]); //Jone 1 2

test.call({ name:"Lina" },4,5,6);  //Lina 4 5


0 0
原创粉丝点击