JS进阶
数组
数组可以存放任意类型的元素
| let arr = ['小胖',12,true,28.9]; |
| console.log(arr, arr.length); |
| var arr = [1, 2, ['xiaopang', '小胖']]; |
| console.log(arr[2][1]); |
函数
| |
| function 函数名(x, y) { |
| |
| return z; |
| } |
| |
| 函数名(x, y); |
| |
| |
| var myFunction = function(a, b) { |
| return a + b; |
| }; |
| |
| console.log(myFunction(1, 2)); |
类与对象
- 类的定义
| class Person { |
| |
| } |
| |
| var p = new Person(); |
| console.log(typeof p); |
- 构造函数
constructor()
方法用于传递参数, 返回实例对象.
通过new
命令生成对象时自动调用, 若没有, 会自动创建
| class Person { |
| constructor(uname, age) { |
| this.uname = uname; |
| this.age = age; |
| } |
| } |
| |
| var stu = new Student('xiaoming', 20); |
- 类的方法
| class Person { |
| constructor(uname, age) { |
| this.uname = uname; |
| this.age = age; |
| } |
| p_sing() { |
| console.log('唱') |
| } |
| } |
| |
| var kun = new Person('kunkun', 20); |
| kun.p_sing(); |
创建对象
class
关键字(ES6)
| class Person { |
| constructor(name, age) { |
| this.name = name; |
| this.age = age; |
| } |
| |
| sayHello() { |
| console.log(`Hello, my name is ${this.name}`); |
| } |
| } |
| |
| let person = new Person('Alice', 30); |
- 对象字面量(Object Literal)
| |
| let person = { |
| firstName: 'John', |
| lastName: 'Doe', |
| age: 30, |
| sayHello: function() { |
| console.log(`Hello, my name is ${this.firstName} ${this.lastName}`); |
| } |
| }; |
| |
| |
| person.sayHello(); |
new
关键字和构造函数
| |
| function Car(make, model, year) { |
| this.make = make; |
| this.model = model; |
| this.year = year; |
| this.displayInfo = function() { |
| console.log(`${this.year}${this.make} ${this.model}`); |
| }; |
| } |
| |
| |
| let myCar = new Car('Toyota', 'Corolla', 2020); |
| |
| |
| myCar.displayInfo(); |
Object.create()
方法
| |
| let animalProto = { |
| makeSound: function() { |
| console.log(`${this.name} makes a sound.`); |
| } |
| }; |
| |
| |
| let myAnimal = Object.create(animalProto); |
| myAnimal.name = 'Dog'; |
| |
| |
| myAnimal.makeSound(); |
- 工厂函数
| function createPerson(name, age) { |
| return { |
| name: name, |
| age: age, |
| sayHello: function() { |
| console.log(`Hello, my name is ${this.name}`); |
| } |
| }; |
| } |
| |
| let person = createPerson('Alice', 30); |
| |
- 原型模式
| function Person(name, age) { |
| this.name = name; |
| this.age = age; |
| } |
| |
| Person.prototype.sayHello = function() { |
| console.log(`Hello, my name is ${this.name}`); |
| }; |
| |
| let person = new Person('Alice', 30); |
| |
- 模块模式
| let person = (function() { |
| let name = 'Alice'; |
| let age = 30; |
| |
| return { |
| getName: function() { |
| return name; |
| }, |
| getAge: function() { |
| return age; |
| } |
| }; |
| })(); |
| |
Object.assign()
方法
| let parent = { |
| sayHello: function() { |
| console.log('Hello'); |
| } |
| }; |
| |
| let child = Object.assign({}, parent, { name: 'Alice' }); |
| |
内置对象
方法名 |
功能 |
Math.floor() |
向下取整 |
Math.max()/Math.min() |
求最大和最小值 |
Math.random() |
获取范围在[0,1)内的随机值 |
方法名 |
功能 |
getFullYear() |
获取年份 |
getMonth() |
获取月份(0~11) |
getDate() |
获取日期(1~31) |
getDay() |
获取星期(0~6) |
getHours() |
获取小时 |
getMinutes() |
获取分钟 |
getSeconds() |
获取秒 |
方法名 |
功能 |
chatAt() |
返回在指定位置的字符 |
charCodeAt() |
返回在指定位置字符的unicode编码(ASCII编码) |
concat() |
连接字符串 |
indexOf() |
从字符串的开头向后搜索字符串 |
lastIndexOf() |
从字符串的末尾向前搜索字符串 |
match() |
找到一个或多个正则表达式的匹配 |
replace() |
替换与正则表达式匹配的字串 |
search() |
检索与正则表达式相匹配的值 |
slice() |
提取字符串的片段,并在新的字符串中返回被提取的部分 |
split() |
把字符串分割成字符串数组 |
substr() |
从起始索引号提取字符串中指定数目的字符 |
substring() |
截取字符串中两个指定的索引号之间的字符 |
toLowerCase() |
将字符串转换为小写 |
toUpperCase() |
将字符串转换为大写 |
toString() |
返回字符串本身 |
valueOf() |
返回某个对象的原始值 |
trim() |
删除前置及后缀的所有空格 |
方法名 |
功能 |
返回值 |
是否改变原数组 |
push() |
在末尾添加元素 |
新数组的长度 |
Y |
unshift() |
在开头添加元素 |
新数组的长度 |
Y |
pop() |
删除最后一个元素 |
删除的元素的值 |
Y |
shift() |
移除第一项 |
删除的元素的值 |
Y |
reverse() |
反转数组中的元素 |
反转后数组 |
Y |
sort() |
以字母顺序(字符串Unicode码点)对数组进行排序 |
新数组 |
Y |
splice() |
在指定位置删除指定个数元素再增加任意个数元素 |
返回删除的数据所组成的数组 |
Y |
fill() |
用给定值填充一个数组 |
新数组 |
Y |
concat() |
通过合并(连接)现有数组来创建一个新数组 |
合并之后的数组 |
N |
join() |
用特定的字符,将数组拼接形成字符串 (默认",") |
拼接后的字符串 |
N |
slice() |
裁切指定位置的数组 |
被裁切的元素形成的数组 |
N |
toString() |
将数组转换为字符串 |
字符串 |
N |
valueOf() |
查询数组原始值 |
数组的原始值 |
N |
indexOf() |
查询某个元素在数组中第一次出现的位置 |
存在该元素,返回下标,不存在 返回 -1 |
N |
lastIndexOf() |
反向查询数组某个元素在数组中第一次出现的位置 |
存在该元素,返回下标,不存在 返回 -1 |
N |
forEach() |
(迭代) 遍历数组,每次循环中执行传入的回调函数 |
无/(undefined) |
N |
map() |
(迭代) 遍历数组, 每次循环时执行传入的回调函数,根据回调函数的返回值,生成一个新的数组 |
有/自定义 |
N |
filter() |
(迭代) 遍历数组, 每次循环时执行传入的回调函数,回调函数返回一个条件,把满足条件的元素筛选出来放到新数组中 |
满足条件的元素组成的新数组 |
N |
every() |
(迭代) 判断数组中所有的元素是否满足某个条件 |
全都满足返回true 只要有一个不满足 返回false |
N |
some() |
(迭代) 判断数组中是否存在,满足某个条件的元素 |
只要有一个元素满足条件就返回true,都不满足返回false |
N |
reduce() |
(归并)遍历数组, 每次循环时执行传入的回调函数,回调函数会返回一个值,将该值作为初始值prev,传入到下一次函数中 |
最终操作的结果 |
N |
reduceRight() |
(归并)用法同reduce,只不过是从右向左 |
同reduce |
N |
includes() |
判断一个数组是否包含一个指定的值. |
是返回 true,否则false |
N |
Array.from() |
接收伪数组,返回对应的真数组 |
对应的真数组 |
N |
find() |
遍历数组,执行回调函数,回调函数执行一个条件,返回满足条件的第一个元素,不存在返回undefined |
满足条件第一个元素/否则返回undefined |
N |
findIndex() |
遍历数组,执行回调函数,回调函数接受一个条件,返回满足条件的第一个元素下标,不存在返回-1 |
满足条件第一个元素下标,不存在=>-1 |
N |
flat() |
用于将嵌套的数组“拉平”,变成一维的数组。 |
返回一个新数组 |
N |
flatMap() |
flat()和map()的组合版 , 先通过map()返回一个新数组,再将数组拉平( 只能拉平一次 ) |
返回新数组 |
N |
方法名 |
功能 |
返回值 |
JSON.parse(str) |
将JSON字符串转换成JS对象 |
JS对象 |
JSON.stringify(obj, null, 2) |
将 JS 对象转换为 JSON 字符串 |
JSON字符串 |
本文作者:Khru
本文链接:https://www.cnblogs.com/khrushchefox/p/18514695
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步