1.数组基本方法
(1) push( ) --- 向数组的末尾添加一个或多个元素,并返回新的数组长度。原数组改变
var a = [1,2,3];
a.push(4,5);
//a = [1,2,3,4,5];
(2) pop( ) --- 删除并返回数组的最后一个元素,若该数组为空,则返回undefined。原数组改变。
var a = [1,2,3];
var del_ele = a.pop();
//del_ele = 3;
//a = [1,2];
(3) shift( ) --- 删除数组的第一项,并返回第一个元素的值。若该数组为空,则返回undefined。原数组改变。
var a = [1,2,3,4];
var del_ele = a.shift();
//del_ele =1;
//a = [2,3,4];
2.dom 操作
(1) 获取元素
//通过id获取(以div标签为例)
var div = document.getElementById('div_id');
//通过标签名(返回值为多个元素组成的一个数组)
var div = document.getElementsByTagName('div')[index];
//通过类名(返回值为多个元素组成的一个数组)
var div = document.getElementsByClassName('div_class');
//通过关系(以p标签为例)
//1.children --- 子节点类型为元素的数组
var p = div.children[index]
//2.childrNodes --- 子节点所有类型的数组
var p = div.childNodes[index];
//通过选择器
var x = document.querySelector('.class');
--- (innerHTML 和 innerText)
innerHTML --- 元素包含的所有类型的节点
innerText --- 元素包含的所有文本类型的节点
(2) 操作元素
//删除节点 --- removeChild() 方法用来删除父节点的一个子节点。
子节点
//加入节点
3.回调函数
以函数为参数传入执行的函数中;
熟练掌握的话会起到意想不到的效果
下面代码是我做的小案例的代码
4.加载顺序
代码从上往下执行
javaScript写在head中时需要用window.onload来解决获取不到元素的问题(body还未加载)
还有一种方式就是在body后面写入script标签,再写JavaScript代码
5.定时器
var timer = setInterval(function(){
//以1000ms为周期执行此内容体
...(函数中的内容)
},1000);
//关闭此定时器
clearInterval(timer);
6.事件
var div = document.getElementsByTagName[0];
div.onclick = function(){
//点击div元素之后执行的内容体
};
##2.onmouseover --- 悬浮事件
var div = document.getElementsByTagName[0];
div.onmouseover = function(){
//悬浮到div元素之后执行的内容体
};
##2.onmouseout --- 移开事件
var div = document.getElementsByTagName[0];
div.onmouseout = function(){
//从悬浮到移开div元素之后执行的内容体
};
##2.onkeydown --- 键盘事件
document.onkeydown = function(){
//从整个文档中按下键盘某个按键会弹出对应的值
alert(event.keyCode);
}
//注意 : 所有的时间浏览器会默认传入一个event参数,可以用此参数来进行事件的进一步使用
7.let const 解构赋值 class
1.let
(1)块级作用域 --- 例:for( ; ; )中的每次循环
(2)可重新赋值
(3)暂存死区 --- 没有声明提前
(4)不在window上创建任何全局属性
(5)不可重新声明
2.const --- (与let不同之处有)
(1)声明时候必须赋值
(2)不可重新赋值
3.解构赋值
(1)对象解构
//基本.
let { foo, bar } = { foo: 'aaa', bar: 'bbb' };
// foo = 'aaa' , bar = 'bbb'
let { baz : foo } = { baz : 'ddd' };
// foo = 'ddd'
(2)数组解构
let [a, b, c] = [1, 2, 3];
//a = 1 , b = 2 , c = 3; --- 基本
let [a, [[b], c]] = [1, [[2], 3]];
//a = 1 , b = 2 , c = 3; --- 嵌套
let [a, , b] = [1, 2, 3];
//a = 1 , b = 3 --- 忽略
let [a = 1, b] = [];
// a = 1, b = undefined --- 不完全解构
let [a, ...b] = [1, 2, 3];
//a = 1 , b = [2, 3] --- 剩余运算符
//解构赋值思路:
//根据数组中每个元素的匹配结果进行赋值 , 若没有则为undefined
4.class
目前学的和java class使用思路基本一样 , 写法有些不同
(1) constructor() --- 构造方法
(2) static 变量通过类名声明
(3) 普通变量通过构造方法声明
8.call() 和 apply()
1.call()
var age = 20;
var person = {
age: 19;
sayAge: function () {
return "Hello, My age is " +this.age;
}
}
var person_again = {
}
console.log(person.sayAge.call(person_again));//此时方法中输出语句中的age为undefined
2.applay()
var age = 20;
var person = {
age: 19;
sayAge: function () {
return "Hello, My age is " +this.age;
}
}
var person_again = {
}
console.log(person.sayAge.apply(person_again));//此时方法中输出语句中的age为undefined
二者不同之处 : 传参数时候apply需要以数组形式进行传递
9.内核(引擎)(浅入)
javaScript为什么会在你的网页上面运行?
//1、IE浏览器内核:Trident内核,也是俗称的IE内核;
//2、Chrome浏览器内核:统称为Chromium内核或Chrome内核,以前是Webkit内核,现在是Blink内核;
//3、Firefox浏览器内核:Gecko内核,俗称Firefox内核;
//4、Safari浏览器内核:Webkit内核;
//5、Opera浏览器内核:最初是自己的Presto内核,后来是Webkit,现在是Blink内核;
//6、360浏览器、猎豹浏览器内核:IE+Chrome双内核;
//7、搜狗、遨游、QQ浏览器内核:Trident(兼容模式)+Webkit(高速模式);
//8、百度浏览器、世界之窗内核:IE内核;
//9、2345浏览器内核:以前是IE内核,现在也是IE+Chrome双内核;