1.innerHTML
修改 HTML 内容的最简单的方法是使用 innerHTML 属性。
这句话的说法是错误的,innerHTML属性用于获取或替换 HTML 元素的内容,不能用来修改内容。
2.null与undifined
(1)null 的字面意思是 空值 ,这个值的语义是,希望表示 一个对象被人为的重置为空对象,而非一个变量最原始的状态 。
(2) undefined 的字面意思就是未定义的值,这个值的语义是,希望表示一个变量最原始的状态,而非人为操作的结果 。
(3)虽然 undefined 和 null 的语义和场景不同,但总而言之,它们都表示的是一个无效的值。 因此,在JS中对这类值访问属性时,都会得到异常的结果;ECMAScript 规范认为,既然 null 和 undefined 的行为很相似,并且都表示 一个无效的值,那么它们所表示的内容也具有相似性,即有
undefined == null; //true
3.window.location
(1)window.location.href 当前页面跳转
(2)window.open 新页面跳转
(3)self.location.href =‘#’ 禁止页面跳转-可以用在你页面要打开外部插件
(4)window.location.assign() 也是在本页面刷新
(5)window.location.reload(true);强制从服务器重新加载当前页面
(6)window.location.replace()刷新当前页面
4.i++与++i
i++ 即后加加,原理是:先自增,然后返回自增之前的值
++i 即前加加,原理是:先自增,然后返回自增之后的值
不论是前++还是后++,都有个共同点是先自增。
var i=100;i++;j=i++;y=++j; j=102;y=102;
5.DOM中追加、插入、移除、复制和获取节点
appendChild(); 在末尾追加节点
insertBefore(); 插入节点
removeChild(); 移除节点
replaceChild(); 替换节点
cloneNode(); 复制节点
document.getElementById(); 通过Id获取节点
document.getElementsByClassName(); 通过类名获取节点
document.getElementsByTagName(); 通过属性name的值获取节点
6.this关键字用法
(1)纯粹的函数调用
function test(){
this.a = 1;
consolelog(this.a);
}
test(); // 1
(2)作为对象方法的调用
function test(){
consolelog(this.x);
}
var o = {};
o.x = 1;
o.m = test;
o.m(); // 1
o.m()就相当于调用test方法,因此this指向的是o,this.x也就是o.x=1
(3)作为构造函数调用
function test(){
this.x = 1;
}
var o = new test();
consolelog(o.x); // 1
对象是通过这个test函数生成的,因此this指向的也就是这个对象,this.x=o.x=1
(4)apply调用
apply()是函数对象的一个方法,它的作用是改变函数的调用对象,它的第一个参数就表示改变后的调用这个函数的对象。因此,this指的就是这第一个参数。
var x = 0;
function test(){
consolelog(this.x);
}
var o={};
o.x = 1;
o.m = test;
o.m.apply(); //0
apply()的参数为空时,默认调用全局对象。因此,这时的运行结果为0,证明this指的是全局对象。
该分点 原文链接:https://blog.csdn.net/chiuwingyan/article/details/78260413
6.用js实现永久及临时存储、获取、删除、删除所有本地数据的方法
(1)临时存储:sessionStorage
存储数据:sessionStorage.setItem(key,value)
获取数据:sessionStorage.getItem(key)
删除数据:sessionStorage.removeItem(key)
清除所有数据:sessionStorage.clear()
(2)永久存储:localStorage
存储数据:localStorage.setItem(key,value)
获取数据:localStorage.getItem(key)
删除数据:localStorage.removeItem(key)
清除所有数据:localStorage.clear()
7.数组去重(通过indexOf)
indexOf() 可返回某个指定的字符串值在字符串中首次出现的位置。
语法:stringObject.indexOf(searchvalue,fromindex)
参数:searchvalue(必需,规定需检索的字符串值)fromindex 可选的整数参数。规定在字符串中开始检索的位置。它的合法取值是 0 到 stringObject.length - 1。如省略该参数,则将从字符串的首字符开始检索
如果要检索的字符串值没有出现,则该方法返回 -1
function unique4(arr) {
var newArr = [];
for (var i = 0; i < arr.length; i++) {
if (newArr.indexOf(arr[i])===-1) {
newArr.push(arr[i]);
}
}
return newArr;
}
var arr = ['l', 'p', 'y', 'g', 'j', 'm', 'l', 'g'];
console.log(unique4(arr));
//['l', 'p', 'y', 'g', 'j', 'm']