JS DOM和BOM:
ECMAScript规范 js基本语法
- DOM 文档对象模子 DOM供应了要领操纵DOM树上的节点
- BOM 浏览器对象模子 经由过程BOM能够 取得屏幕分辨率 掌握浏览器跳转 弹出框
- BOM中的顶级对象就是window,DOM中的顶级对象是document。document是window的一个子对象。
window.onload(){}
setInterval()
clearInterval()
setTimeout()
clearTimeout()
- Location 对象
包括的属性有hash
(地点栏#后的内容)、href
(地点)、protocol
(协定)、port
(端口)、host
(主机和端口号)、hostname
(主机名字)、pathname
(途径名字)、search
(搜刮的内容:猎取的?后的内容)location.assign()
//和location.href一样的操纵location.replace()
//替代的地点,没有历史记录location.reload()
//页面从新加载 - History 对象
history.forward()
//行进history.back()
//退却history.go()
//正数就是行进,负数就是退却 - DOM对象:
document.getElementById('div');
//返回一个ID属性为‘div’的对象document.getElementsByTagName('div');
//返回由一切div标签的构成的数组document.getElementsByClassName('div');
//返回一切含有类名为‘div’的元素数组document.getElementsByName('div');
//返回查询元素的 name属性为‘div’的元素数组document.querySelector("a[targe]");
//返回第一个含有target属性的‘a’元素document.querySelectorAll(".example");
//返回是多个含有类名为example的元素的数组
JS有五种基本数据范例:
number
/string
/boolean
/undefined
/null
(可运用typeof
要领 来推断基本对象范例)
- 援用型数据范例:
function / object
援用数据范例会拓荒出堆内存,它们指向的是 内存地点。
字符串 之间用 ‘+’ 会拼接字符串,假如其他范例数据和字符串拼接,会被转换为字符串,这个中涉及到变量的隐式转换
范例转换:
数字范例转换:parseInt() / parseFloat() / Number() *(总结:想要转整数用parseInt(),想要转小数用parseFloat(),想要转数字:Number();更严厉。)*
其他范例转换:
.toString() / String() / Boolean() NaN 不是一个数字,或许不是数字与数字的盘算就会获得 NaN (isNaN() 推断一个值是否是 NaN) ! 示意非, !false == true 的效果为true
操纵符:
算数运算符:+ - * / % 一元运算符:++ -- 二元操纵符:&& || 三元操纵符: 前提?效果1 : 效果2 复合运算符: += -= *= /= %=
流程掌握:
if(){ } else if(){ }else{ } switch(){ case : ;default: ; } while(){ } do{ }while() for( ; ; ){ } (break 用来作废后续轮回,continue 用来作废本次轮回) (switch中的前提推断 运用的是严厉形式的全即是)
JS内置对象:
实例要领:经由过程new的体式格局建立的对象(实例对象)来挪用的要领 静态要领:直接经由过程组织函数挪用的要领
- Array 建立体式格局有两种:
var a =[];
//直接经由过程字面量建立var a = new Array()
//经由过程组织函数举行建立- Array对象的静态要领:
Array.isArray(对象)
//推断这个对象是否是数组- Array对象的实例要领:
.concat(数组,数组,..)
//组合一个新数组.every(函数)
//返回布尔值,函数作为参数运用,函数中有三个参数,分别是元素的值,索引值,本来的数组(没用)
//数组中的每一个元素都相符前提,才返回true.filter(函数);
//数组中复合前提的元素,构成新数组.map(函数);
//每一个元素都实行这个函数,把实行后的效果从新放在一个新的数组中.forEach(函数)
//遍历数组用.push(值);
//把值追加到末了了,返回值是追加数据后的数组长度.pop();
//删除末了一个元素,返回值就是删除的这个值.shift();
//删除第一个元素,返回值就是删除的这个值.unshift();
//向第一个元素前插进去新元素,返回值是插进去后的长度.indexOf(元素值);
//返回的是索引,没有则是-1.join("字符串");
//返回的是一个字符串.reverse();
//反转数组.sort();
//排序.slice(最先,完毕);
//把截取的数组的值放在一个新的数组中,然则不包括完毕的索引对应的元素值.splice(最先,要删的个数,替代的值);
//平常是用于删除数组中的元素,或许是替代元素,或许是插进去元素Math 对象 :
- Math对象的静态要领:
Math.PI
—π—Math.sqrt()
—取平方根—Math.pow(a,b)
—a的b次方—Math.E
—天然常数—Math.abs()
—绝对值—Math.ceil()
—向下取整—Math.floor()
—向上取整—Math.Max()
—取最大值—Math.Min()
—取最小值—Math.random()
—取0-1之间随机值(不包括1)—Date 对象
- Date对象的静态要领:
Date.now()
//猎取当前时刻- Date对象的实例要领:
.getFullYear()
//猎取年份.getMonth()
//猎取月份从0最先.getDate()
//猎取日.getHours()
//猎取小时.getMinutes()
//猎取分钟.getSeconds()
//猎取秒数.getDay()
//猎取星期数.toLocaleDateString()
//”2019/1/25″.toLocaleTimeString()
//”下昼2:20:26″.valueOf()
//1548397226024.toString()
//”Fri Jan 25 2019 14:20:26 GMT+0800 (中国规范时刻)”String 对象
字符串能够看做是由许多字符构成的数组,字符串有不可变的特征,字符串的值之所以看起来是转变的,那是由于指向转变了,并非真的值转变了。
- 字符串的经常使用属性:
.length
字符串长度.charAt(索引)
//返回值是指定索引位置的字符串,超越索引,效果是空字符串.concat(字符串1,字符串2,...);
//返回的是拼接以后的新的字符串.indexOf(要找的字符串,最先的索引值);
//返回的是这个字符串的索引值,没找到则返回-1.lastIndexOf(要找的字符串);
//从后向前找,然则索引仍然是从左向右的体式格局,找不到则返回-1.replace("本来的字符串","新的字符串");
//用来替代字符串的.slice(5,10);
//从索引5的位置最先提取,到索引为10的前一个完毕,没有10,并返回这个提取后的字符串.split("字符串",切割后留下的个数);
//切割字符串.substr(最先的位置,个数);
//返回的是截取后的新的字符串.substring(最先的索引,完毕的索引)
//返回截取后的字符串,不包括完毕的索引的字符串.toLowerCase();
//转小写.toLocaleUpperCase()
转大写.toUpperCase();
//转大写.trim();
//干掉字符串两头的空格
作用域:
- 分为全局作用域和部分作用域,依据地点的作用域差别,变量又分为全局变量和部分变量。另外,另有块级作用域,被'{ }’包裹就能够算作一个块,实在的变量定义,运用var 定义能够被外部运用, 运用 const、let 不能够被外部运用。
- 部分变量在函数作用域烧毁时,就会被开释,而全局变量一旦被建立,就不会被开释,除非页面封闭(然则隐式全局变量能够被烧毁,没有运用var声明的全局变量)。
在一切作用域建立的时刻,js引擎会有一个处置惩罚,预诠释,它所做的事,就是提早把一切的变量声清楚明了,一切的函数声明并定义了(所以你能够在定义函数之前来挪用这个函数)。
- 预诠释中的变量提拔,只会提拔到当前作用域的最前面,而不是其他作用域。
- 预剖析会分段(多对的script标签中函数重名,预剖析的时刻不会争执)。
JSON对象:
一组无序属性的鸠合的键值对,属性的值能够是恣意范例,这就是对象。JSON也是一个对象,数据都是成对的,平常json花样的数据无论是键照样值都是用双引号括起来的。
JSON对象具有两个要领,parseInt() (将字符串转换为JSON对象)和 stringify() (将JSON对象转换为字符串),这两个平经常使用于 数据存储或许与背景交互。
- 遍历对象:
for(var key in json ){
console.log(key +'===========' + json[key]);
}