这里写目录标题
数据类型
原始类型(基础类型)
数值;字符串;布尔值
合成类型(复合类型)
对象:因为一个对象往往是多个原始类型的值的合成,可以看作是一个存放各种值的容器。
undefined和null:一般将它们看成两个特殊值。null一般代表对象为“没有‘,undefined一般代表数值为”没有“。
ES6新出的Symbol BinInt
Symbol 。这种类型的对象永不相等,即始创建的时候传入相同的值,可以解决属性名冲突的问题,做为标记。
bigInt。是指安全存储、操作大整数。(但是很多人不把这个做为一个类型)。
运算符之布尔运算符
用于将表达式转为布尔值,取反运算符 !、且运算符 &&、或运算符 ||
取反运算符(!)
对于非布尔值,取反运算符会将其转为布尔值,以下六个值取反后为true,其他值都为false。
undefined、null、false、0、NaN、空字符串(‘’)
注:NaN属性代表一个”不是数字“的值,这个特殊的值是因为运算不能执行而导致的,不能执行的原因是 运算对象之一非数字或者运算结果非数字。NaN类型为Number,NaN和任何东西比较(===)包括他自己都是false
break和continue
break 跳出整个循环,continue跳出本次循环,进入下次循环
字符串方法
charAt()
charAt 方法返回指定位置的字符,参数是从 0 开始编号的
如果参数为负数,或大于等于字符串的长度, charAt 返回空字符串
concat()
concat 方法用于连接两个字符串,返回一个新字符串,不改变原字符串。该方法可以接受多个参数。
如果参数不是字符串, concat 方法会将其先转为字符串,然后再连接。
concat和+的区别:
concat不管什么类型直接合并成字符串
加号遇到数字类会做运算,遇到字符串相连接
substring()
substring 方法用于从原字符串取出子字符串并返回,不改变原字符串。
它的第一个参数表示子字符串的开始位置,第二个位置表示结束位置(返回结果不含该位置)
如果省略第二个参数,则表示子字符串一直到原字符串的结束
如果第一个参数大于第二个参数, substring 方法会自动更换两个参数的位置
如果参数是负数, substring 方法会自动将负数转为0
substr()
substr 方法用于从原字符串取出子字符串并返回,不改变原字符串,跟 substring 方法的作用相同
substr 方法的第一个参数是子字符串的开始位置(从0开始计算),第二个参数是子字符串的长度
如果省略第二个参数,则表示子字符串一直到原字符串的结束
如果第一个参数是负数,表示倒数计算的字符位置。如果第二个参数是负数,将被自动转为0,因此会返回空字符串
indexOf()
indexOf 方法用于确定一个字符串在另一个字符串中第一次出现的位置,返回结果是匹配开始的位置。如果返回 -1 ,就表示不匹配
indexOf 方法还可以接受第二个参数,表示从该位置开始向后匹配
trim()
trim 方法用于去除字符串两端的空格,返回一个新字符串,不改变原字符串
该方法去除的不仅是空格,还包括制表符( \t 、 \v )、换行符( \n )和回车符( \r )
ES6扩展方法:trimEnd() 和 trimStart() 方法
" itbaizhan ".trimEnd(); // itbaizhan
" itbaizhan ".trimStart(); // itbaizhan
split()
split 方法按照给定规则分割字符串,返回一个由分割出来的子字符串组成的数组
如果分割规则为空字符串,则返回数组的成员是原字符串的每一个字符。
如果省略参数,则返回数组的唯一成员就是原字符串
split 方法还可以接受第二个参数,限定返回数组的最大成员数。
for in 和 for of 数组遍历
两者都可以用于遍历,不过for in遍历的是数组的索引(index)即键名,而for of遍历的是数组元素值(value)
for in:
1、索引是字符串型的数字,因而不能直接进行几何运算
2、遍历顺序可能不是实际的内部顺序
3、for in会遍历数组所有的可枚举属性,包括原型。例如的原型方法method和name属性
for of:
for of不支持普通对象,想遍历对象的属性,可以用for in循环, 或内建的Object.keys()方法:
Object.keys(myObject)获取对象的实例属性组成的数组,不包括原型方法和属性
for (var key of Object.keys(Object))
console.log(key + ": " + Object[key])
一般用for in遍历对象 for of 遍历数组
数组方法
数组静态方法 Array.isArray()
Array.isArray 方法返回一个布尔值,表示参数是否为数组。它可以弥补typeof 运算符的不足
push()/pop()
push 方法用于在数组的末端添加一个或多个元素,并返回添加新元素后的数组长度。注意,该方法会改变原数组
pop 方法用于删除数组的最后一个元素,并返回该元素。注意,该方法会改变原数组
shift()/unshift()
shift 方法用于删除数组的第一个元素,并返回该元素。注意,该方法会改变原数组,shift 方法可以遍历并清空一个数组
unshift 方法用于在数组的第一个位置添加元素,并返回添加新元素后的数组长度。注意,该方法会改变原数组
unshift 方法可以接受多个参数,这些参数都会添加到目标数组头部
join()
join 方法以指定参数作为分隔符,将所有数组成员连接为一个字符串返回。如果不提供参数,默认用逗号分隔
如果数组成员是 undefined 或 null 或空位,会被转成空字符串
[undefined, null].join('#') // '#'
['a',, 'b'].join('-') // 'a--b'
数组的 join 配合字符串的 split 可以实现数组与字符串的互换
concat()
concat 方法用于多个数组的合并。它将新数组的成员,添加到原数组成员的后部,然后返回一个新数组,原数组不变
除了数组作为参数, concat 也接受其他类型的值作为参数,添加到目标数组尾部。
reverse()
reverse 方法用于颠倒排列数组元素,返回改变后的数组。注意,该方法将改变原数组
indexOf()
indexOf 方法返回给定元素在数组中第一次出现的位置,如果没有出现则返回 -1
indexOf 方法还可以接受第二个参数,表示搜索的开始位置
对象
对象就是一组“键值对”(key-value)的集合,是一种无序的复合数据集合
如果一个属性的值为函数,通常把这个属性称为“方法”,它可以像函数那样调用
如果属性的值还是一个对象,就形成了链式引用
Math对象
Math是 JavaScript 的原生对象,提供各种数学功能
Math.abs() 返回参数值的绝对值
Math.max 方法返回参数之中最大的那个值, Math.min 返回最小的那个值。如果参数为空, Math.min 返回 Infinity , Math.max 返回 -Infinity 。
Math.floor 方法返回小于参数值的最大整数,Math.ceil 方法返回大于参数值的最小整数
Math.random() 返回0到1之间的一个伪随机数,可能等于0,但是一定小于1
Date对象
Date 对象是 JavaScript 原生的时间库。它以1970年1月1日00:00:00作为时间的零点,可以表示的时间范围是前后各1亿天(单位为毫秒)
Date.now 方法返回当前时间距离时间零点(1970年1月1日 00:00:00UTC)的毫秒数,相当于 Unix 时间戳乘以1000
时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数。
Date 对象提供了一系列 get* 方法,用来获取实例对象某个方面的值
getTime():返回实例距离1970年1月1日00:00:00的毫秒数
getDate():返回实例对象对应每个月的几号(从1开始)
getDay():返回星期几,星期日为0,星期一为1,以此类推
getYear():返回距离1900的年数
getFullYear():返回四位的年份
getMonth():返回月份(0表示1月,11表示12月)
getHours():返回小时(0-23)
getMilliseconds():返回毫秒(0-999)
getMinutes():返回分钟(0-59)
getSeconds():返回秒(0-59)
document对象_方法/获取元素
document.getElementsByTagName()
document.getElementsByTagName 方法搜索 HTML 标签名,返回符合条件的元素。它的返回值是一个类似数组对象( HTMLCollection 实例),可以实时反映 HTML 文档的变化。如果没有任何匹配的元素,就返回一个空集
var paras =document.getElementsByTagName('p')
如果传入 * ,就可以返回文档中所有 HTML 元素
document.getElementsByClassName()
document.getElementsByClassName 方法返回一个类似数组的对象( HTMLCollection 实例),包括了所有 class 名字符合指定条件的元素,元素的变化实时反映在返回结果中
由于 class 是保留字,所以 JavaScript 一律使用 className 表示 CSS 的 class,参数可以是多个 class ,它们之间使用空格分隔
var paras =document.getElementsByClassName('foo bar')
document.getElementsByName()
document.getElementsByName 方法用于选择拥有 name 属性的 HTML 元素(比如 、 、 等),返回一个类似数组的的对象( NodeList 实例),因为 name 属性相同的元素可能不止一个
// 表单为 <form name="itbaizhan"></form>
var forms