1.输出
- window.alert():弹出警告框
- document.write():将内容输出到HTML文档
- innerHTML:修改HTML元素内容
- console.log:输出到控制台
注意:
当HTML文档加载完成之后,再执行document.write()语句的话,页面会被覆盖。例如点击按钮执行document.write
2.数据类型
var length = 16; // Number 通过数字字面量赋值
var points = x * 10; // Number 通过表达式字面量赋值
var lastName = “Johnson”; // String 通过字符串字面量赋值
var cars = [“Saab”, “Volvo”, “BMW”]; // Array 通过数组字面量赋值
var person = {firstName:“John”, lastName:“Doe”}; // Object 通过对象字面量赋值
3.对象
var x= {name:value,name:value,functionname:function(){}};
访问属性:
x.name 或者 x["name"]
对象方法:functionname:function(){},将函数存储在对象属性中。
访问对象方法:
- 不加括号
将返回对象方法的内容。 - 加括号
将返回对象方法所执行的结果。
4.正则表达式
语法:
/表达式主体/修饰符
字符串方法:
search()
:检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串,并返回子串的起始位置。
replace()
:在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。
修饰符:
- i:不区分大小写
- g:全局匹配,查找所有匹配
- m:多行匹配
主体:
- 使用[ ]查找范围内的字符:[0-9]
首先使用RegExp("[ ]")构造正则表达式对象,
test() 方法用于检测一个字符串是否匹配某个模式,如果字符串中含有匹配的文本,则返回 true,否则返回 false。
5.apply和call
apply和call还有bind都是重定义this对象的
详细讲解:
https://www.runoob.com/w3cnote/js-call-apply-bind.html
6.数组
pop():
从数组中弹出最后一个元素
push(x):
将x插入到数组最后,可以返回新数组长度
shift():
删除第一个元素,并把后面的元素逐个前移,可以返回被删除的字符串
unshift(x):
将数组插入到首位,其他元素逐个后移,可以返回新数组长度
splice(begin,number,"":
可以添加或删除元素。begin:添加新元素的位置;number:从这个位置开始想要删除的元素个数;“”:添加的元素,可以不写。
concat():
连接数组:a.concat(b)
slice(begin,end):
裁剪数组:begin:开始位置,包括此位置;end:结束位置,不包括此位置。如果没有end参数,即为到数组最后。
排序:
- 字符串数组排序:
sort():按首字母升序排序
reverse():反转元素顺序,可以先升序再反转,达到降序 - 数字排序
比值函数:返回负值、0、正值
升序:function(a,b){return a-b}
降序:function(a,b){return b-a}
查找:
最大值:Math.max.apply(null,arr)或Math.max(arr)
最小值:Math.min.apply(null,arr)或Math.min(arr)
数组迭代:
array.forEach(函数名):
回调函数,每个数组元素都调用一个函数
array.map(函数名):
为每个数组元素执行一个函数来创建新数组,不会对空值执行,不会更改原始数组。
array.filter(函数名):
创建一个通过函数测试的数组元素的新数组
array.reduce(函数名):
数组求和
array.every(函数名):
检查所有数组元素是否通过函数测试
array.some(函数名):
检查某些元素是否通过函数测试
array.indexOf(item,start):
在数组中从头搜索item元素并返回其第一次位置
array.lastIndexOf(item,start):
在数组中从结尾开始搜索item并返回
array.find(函数名):
查找通过函数测试的第一个元素的值
array.findIndex(函数名):
查找通过函数测试的第一个元素的索引
7.let和const
let
let
关键词声明拥有块作用域的变量。变量只能在let命令所在的代码块中有效。
const
const关键词声明变量只能在声明的同时赋值
原始值不能更改
常量对象和常量数组可以更改,但不能重新赋值
let和const声明的变量都不会被提升。