赞
踩
1995年 Brendan Eich
js由DOM(文档对象模型) BOM(浏览器对象模型) ECMAScript(标准)组成
数据类型
基本
number string boolean null undefined
引用
object
ES6新增(不会重复的数据)
Symbol
注: typeof NaN == “number”
typeof null == “object”
typeof返回值为字符串
运算符的优先级
() > 自增自减 > 算术 > 关系(! > && >||) > 逻辑 > 三目 > 赋值
js预解析
在当前作用域中,JavaScript代码执行之前,浏览器首先会默认的把所有带var和function声明的变量进行提前的声明或者定义(函数比变量更先提升,重名则函数覆盖掉变量)
js事件
onmouseover(鼠标滑入元素和元素的子元素都会触发)
onmouseenter(鼠标滑入瞬间触发,不包括子元素)
onmouseout(鼠标移出元素时触发,包括子元素)
onmouseleave(鼠标移出元素时触发,不包括子元素)
数组方法
push() 向尾部添加新元素,返回新lenth
pop() 从尾部删除元素,返回被删元素
unshift() 向头部添加一个或多个元素,返回新length
shift() 删除数组的第一个元素,返回新length
splice(start,legth,item1,…,itemx) 删除从start开始(包括start)指定长度的元素,然后在start位置添加item元素,不加length则删除后面全部,返回值为被删元素
reverse() 将数组倒序排列后返回(原数组会被改变)
slice(start,end) 截取start位置到end位置(不包括start),返回被截取部分
join("任意符号") 使用"任意符号"将数组元素连接成一个字符串
arr.concat(brr,brr,...) 将一个或多个数组所有元素拼接到arr后面并返回(实际不改变原arr)
sort() 数组自带排序方法,默认按字符排列,会自动把数字转换为字符
堆和 栈
堆 (heap)
用于引用数据类型(数组,对象,函数)分配空间,由程序员分配释放,从栈内存指向堆内存的数据结构
栈(stack)
用于存放基本数据类型,由编译器自动分配释放,一种先进后出的数据结构;
浅拷贝和深拷贝
浅拷贝是指源对象与拷贝对象共用一份实体,仅仅是引用的变量不同(名称不同)。对其中任何一个对
象的改动都会影响另外一个对象。
深拷贝是指源对象与拷贝对象互相独立,其中任何一个对象的改动都不会对另外一个对象造成影响。
遍历
1.for
2.for...of...(ES6新增,不支持遍历对象) 遍历数组的元素 可以正确响应break,continue,return 性能好于for in 弱于for 3.for...in... 遍历索引(可以用来遍历对象) 4.forEach arr.forEach((item,index,arr) => { }) 数组自带方法,可以遍历值和下标 性能略弱于for循环,无法中断循环 5.some arr.some((item,index,arr) => {return 条件}) 数组自带方法,用来检测数组是否有满足一些条件的存在,有则返回true 6.every arr.every((item, index, arr) => {return 条件}) 数组自带方法,用来检测是否所有元素都满足条件 7.filter arr.filter(item => {return 条件}) 找出所有符合条件的元素并组成新数组 8.map arr.map(item => {return 条件}) 返回处理过的新数组 9.reduce(归并) array.reduce(function(total, item, index, arr), initialValue) 作用:计算数组元素相加后的总和 function getNum(total,item){ return total+item; } console.log(arr.reduce(getNum)); total 必需。初始值, 或者计算结束后的返回值。 item 必需。当前元素 index 可选。当前元素的索引 arr 可选。当前元素所属的数组对象。 initialValue 可选。传递给函数的初始值
内置对象Global Array String Math Date 正则(RegExp)
String(字符串对象)
构造对象 var str = new String(“kfew”);
字面量 var str = “kfew”;
属性:length
方法:charAt(index);//返回index位置的字符,若位置无字符则返回null
charCodeAt(index);//返回指定位置的ASCII码
fromCharCode(ASCII值);//根据ASCII码获得字符
substr(start,length);//截取从start开始指定长度的字符,length可为负
substring(start,end);//不包含end
split(“a”);//以关键字符作为切割依据转化为数组
replace(需替换字符,替换字符);//返回替换后的新字符串,可用正则一次替换多个
toLowerCase();//转化为小写
toUpperCase();//转化为大写
Math(数学对象)
方法:
floor(); 向下取整
ceil(); 向上取整
round(); 四舍五入
sqrt(); 开平方
pow(); m的n次方
min(a,b,…); 求最小值
min.apply(null,arr); 求数组最小值
max(a,b,…); 求最大
random(); 得到一个[0,1)之间的随机数
Date(时间对象)
1.大量减少内存占用,减少事件注册。
2.新增元素实现动态绑定事件
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。