JS常用方法汇总顺序

顺序 a、b、c、d、e、f、g、h、i、j、k、l、m、n、o、p、q、r、s、t、u、v、w、x、y、z

参考资料

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Object

 

数组方法

参考资料

https://www.w3school.com.cn/jsref/jsref_obj_array.asp

concat()

concat() 方法通过合并(连接)现有数组来创建一个新数组。

var arr1 = ["Cecilie", "Lone"];
var arr2 = ["Emil", "Tobias", "Linus"];
var arr3 = ["Robin", "Morgan"];
var myChildren = arr1.concat(arr2, arr3);
console.log(myChildren);   //结果:["Cecilie", "Lone", "Emil", "Tobias", "Linus", "Robin", "Morgan"]

 

 join() 

join() 方法也可将所有数组元素结合为一个字符串。它的行为类似 toString(),但是您还可以规定分隔符。

var fruits = ["Banana", "Orange","Apple", "Mango"];
var fruits2 = fruits.join(" * ");
console.log(fruits2);   // Banana * Orange * Apple * Mango

 

map()

map()方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。

var arr = [3, 9];
var res = arr.map((x,i)=>({key: 'key'+i, value: x}));
console.log(res);   //返回 [{key:"key0",value:3},{key:"key1",value:9}]

 

Math.max()

Math.max()返回一组数中的的最大值。

var arr = [1, 2, 3];
var max = Math.max(...arr);
console.log(max);   //返回 3

 

Object.assign()

Object.assign()合并两个或多个object。

var obj1 = { a: 1, b: 2 }; 
var obj2 = { c: 3, d: 4 }; 
var obj3 = { e: 5, f: 6 };
var obj = Object.assign(obj1, obj2, obj3)
console.log(obj);   //返回 { a: 1, b: 2, c: 3, d: 4, e: 5, f: 6 }

 

 

pop()

pop() 方法从数组中删除最后一个元素。

var fruits = ["Banana", "Orange","Apple", "Mango"];
var fruits2 = fruits.pop();
console.log(fruits);   // Mango
console.log(fruits2);   // ["Banana", "Orange", "Apple"]

 

push() 

push() 方法(在数组结尾处)向数组添加一个新的元素。

var fruits = ["Banana", "Orange", "Apple", "Mango"];
var fruits2 = fruits.push("Kiwi");
console.log(fruits);   // ["Banana", "Orange", "Apple", "Mango", "Kiwi"]
console.log(fruits2);    // 5

 

reverse()

reverse() 方法反转数组中的元素。 

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.sort();         // 对 fruits 中的元素进行排序
fruits.reverse();      // 反转元素顺序
console.log(fruits);   //结果:["Orange", "Mango", "Banana", "Apple"]

 

 

shift()

shift() 方法会删除首个数组元素。

var fruits = ["Banana", "Orange", "Apple", "Mango"];
var fruits2 = fruits.shift();
console.log(fruits);     // ["Orange", "Apple", "Mango"]
console.log(fruits2);   // Banana

 

slice()

slice() 方法用数组的某个片段切出新数组。

var fruits = ["Banana", "Orange", "Lemon", "Apple", "Mango"];
var citrus = fruits.slice(1, 3);
console.log(citrus);   //结果:["Orange", "Lemon"]

 注:该方法会从开始参数选取元素,直到结束参数(不包括)为止。

 

sort()

sort() 方法以字母顺序对数组进行排序。

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.sort();         // 反转元素顺序
console.log(fruits);   //结果:["Apple", "Banana", "Mango", "Orange"]

 

splice()

splice() 方法可用于向数组(添加/删除)元素。

参数说明:

  1. 第一个参数(2)定义了应添加新元素的位置(拼接)。
  2. 第二个参数(0)定义应删除多少元素。
  3. 其余参数(“Lemon”,“Kiwi”)定义要添加的新元素。
var fruits = ["Banana", "Orange", "Apple", "Mango"];
var fruits2 = fruits.splice(2, 0, "Lemon", "Kiwi");
console.log(fruits);   // ["Banana", "Orange", "Lemon", "Kiwi", "Apple", "Mango"]
console.log(fruits2);     // []

如果第二个参数为2,则删除2个元素。即 “Apple”, “Mango”

var fruits = ["Banana", "Orange", "Apple", "Mango"];
var fruits2 = fruits.splice(2, 2, "Lemon", "Kiwi");
console.log(fruits);   // ["Banana", "Orange", "Lemon", "Kiwi"]
console.log(fruits2); // ["Apple", "Mango"]

 

 toString()

toString() 方法把数组转换为数组值(逗号分隔)的字符串。

var fruits = ["Banana", "Orange", "Apple", "Mango"];
var fruits2 = fruits.toString();
console.log(fruits2);   // Banana,Orange,Apple,Mango

 

unshift()

unshift() 方法(在开头)向数组添加新元素。

var fruits = ["Banana", "Orange", "Apple", "Mango"];
var fruits2 = fruits.unshift("Lemon");
console.log(fruits);   // ["Lemon", "Banana", "Orange", "Apple", "Mango"]
console.log(fruits2);    // 5

 

 

字符串方法

参考资料

https://www.w3school.com.cn/jsref/jsref_obj_string.asp

indexOf()

indexOf() 方法返回字符串中指定文本首次出现的索引(位置)

var str = "The full name of China is the People's Republic of China.";
var pos = str.indexOf("China");
console.log(pos);   //结果:17

 注:如果未找到文本, indexOf()则返回 -1。

 

lastIndexOf()

lastIndexOf() 方法返回指定文本在字符串中最后一次出现的索引(位置)

var str = "The full name of China is the People's Republic of China.";
var pos = str.lastIndexOf("China");
console.log(pos);   //结果:51

 

replace()

replace() 方法用另一个值替换在字符串中指定的值。

默认地,replace() 只替换首个匹配:

var str = "hello, Tom!";
var res = str.replace("Tom", "Jerry");
console.log(res);   //结果:hello, Jerry!

默认地,replace() 对大小写敏感。如需执行大小写不敏感的替换,请使用正则表达式 /i(大小写不敏感):

var str = "hello, Tom!";
var res = str.replace(/TOM/i, "Jerry");
console.log(res);   //结果:hello, Jerry!

如需替换所有匹配,请使用正则表达式的 g 标志(用于全局搜索):

 

 

slice()

slice() 提取字符串的某个部分并在新字符串中返回被提取的部分。

该方法设置两个参数:起始索引(开始位置),终止索引(结束位置)。

var str = "Apple, Banana, Mango";
var res = str.slice(7,13);
console.log(res);   //结果:Banana

 如果省略第二个参数,则该方法将裁剪字符串的剩余部分:

var str = "Apple, Banana, Mango";
var res = str.slice(7);
console.log(res);   //结果:Banana, Mango

如需替换所有匹配,请使用正则表达式的 g 标志(用于全局搜索):

var str = "hello, Tom! hello, Jerry!";
var res = str.replace(/hello/g, "hi");
console.log(res);   //结果:hi, Tom! hi, Jerry!

 

split()

split() 将字符串转换为数组。

var txt = "a,b,c,d,e";
var arr = txt.split(",");
console.log(arr);   //结果:["a", "b", "c", "d", "e"]

 

substr() 

substr() 方法可在字符串中抽取从 开始 下标开始的指定数目的字符。

提示: substr() 的参数指定的是子串的开始位置和长度,因此它可以替代 substring() 和 slice() 来使用。

var str="Hello world!";
console.log(str.substr(2,3)); // llo
console.log(str.substr(2));    // llo world!

 

 

toLowerCase()

toLowerCase() 把字符串转换为小写。

var text1 = "Hello World!";
var text2 = text1.toLowerCase();
console.log(text2);   //结果:hello world!

 

toUpperCase()

toUpperCase() 把字符串转换为大写。

var text1 = "Hello World!";
var text2 = text1.toUpperCase();
console.log(text2);   //结果:HELLO WORLD!

 

Object方法

参考手册

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Object

参考地址

https://www.jianshu.com/p/c5aa1eee8dfd

Object 静态方法总结

create

create 创建一个对象

const obj = Object.create({a:1}, {b: {value: 2}})

//第一个参数为对象,对象为函数调用之后返回新对象的原型对象,第二个参数为对象本身的实例方法(默认不能修改,不能枚举)
console.log(obj.__proto__.a === 1)      // true 
obj.a = 4;
console.log(obj.__proto__.a)  // 1
console.log(obj.a)         // 4
obj.b = 3;
console.log(obj.b)      // 2

//创建一个可写的,可枚举的,可配置的属性p
obj2 = Object.create({}, {
  p: {
    value: 2,       // 属性值
    writable: true,     //  是否可以重写值
    enumerable: true,   //是否可枚举
    configurable: true  //是否可以修改以上几项配置
  }
});

obj2.p = 3;
console.log(obj2.p)     // 3

// 注意: enumerable 会影响以下
// for…in  遍历包括对象原型上属性

// Object.keys()   只能遍历自身属性

// JSON.stringify  只能序列化自身属性

 

defineProperty 

Object.defineProperty(object, prop, descriptor)定义对象属性

// 添加数据属性
var obj = {};

// 1.添加一个数据属性
Object.defineProperty(obj, "newDataProperty", {
    value: 101,
    writable: true,
    enumerable: true,
    configurable: true
});

console.log(obj.newDataProperty)    // 101

// 2.修改数据属性
Object.defineProperty(obj, "newDataProperty", {
    writable:false
});

//添加访问器属性
var obj = {};

Object.defineProperty(obj, "newAccessorProperty", {
    set: function (x) {
        this.otherProperty = x;
    },
    get: function () {
        return this.otherProperty;
    },
    enumerable: true,
    configurable: true
});


//注意:  1.第一个参数必须为对象
//        2.descriptor 不能同时具有 (value 或 writable 特性)(get 或 set 特性)。
//        3.configurable 为false 时,不能重新修改装饰器

 

 

数值方法

参考资料

https://www.w3school.com.cn/jsref/jsref_obj_number.asp

NEGATIVE_INFINITY

NEGATIVE_INFINITY 表示负的无穷大(溢出返回)。

var x = Number.NEGATIVE_INFINITY;

 

Number()

Number() 可用于把 JavaScript 变量转换为数值。 

var x1 = true;
var x2 = false;
var x3 = new Date();
var x4 = "10"
var x5 = "10 20"
Number(x1);     // 返回 1
Number(x2);     // 返回 0
Number(x3);     // 返回 1621842783539
Number(x4);     // 返回 10
Number(x5);     // 返回 NaN

注:如果无法转换数字,则返回 NaN

 

parseInt()

parseInt() 函数可解析一个字符串,并返回一个整数。只返回首个数字:

parseInt("10");         // 返回 10
parseInt("10.33");      // 返回 10
parseInt("10 20 30");   // 返回 10
parseInt("10 years");   // 返回 10
parseInt("years 10");   // 返回 NaN

 

parseFloat()

parseFloat() 函数可解析一个字符串,并返回一个浮点数。只返回首个数字:

parseFloat("10");        // 返回 10
parseFloat("10.33");     // 返回 10.33
parseFloat("10 20 30");  // 返回 10
parseFloat("10 years");  // 返回 10
parseFloat("years 10");  // 返回 NaN

 

POSITIVE_INFINITY

POSITIVE_INFINITY 表示无穷大(溢出返回)。

var x = Number.POSITIVE_INFINITY;

 

 

toExponential()

toExponential() 返回字符串值,它包含已被四舍五入并使用指数计数法的数字。

var x = 9.656;
x.toExponential(2);     // 返回 9.66e+0
x.toExponential(4);     // 返回 9.6560e+0
x.toExponential(6);     // 返回 9.656000e+0

 

toFixed()

toFixed() 返回字符串值,它包含了指定位数小数的数字。

var x = 9.656;
x.toFixed(0);     // 返回 10
x.toFixed(2);     // 返回 9.66
x.toFixed(4);     // 返回 9.6560
x.toFixed(6);     // 返回 9.656000

 

toPrecision()

toPrecision() 返回字符串值,它包含了指定长度的数字。

var x = 9.656;
x.toPrecision();     // 返回 9.656
x.toPrecision(2);    // 返回 9.7
x.toPrecision(4);    // 返回 9.656
x.toPrecision(6);    // 返回 9.65600

 

valueOf()

valueOf() 以数值返回数值。

var x = 123;
x.valueOf();            // 从变量 x 返回 123
(123).valueOf();        // 从文本 123 返回 123
(100 + 23).valueOf();   // 从表达式 100 + 23 返回 123

 

运算符

参考资料

https://www.w3school.com.cn/jsref/jsref_operators.asp

typeof

typeof运算符介绍:typeof 是一个一元运算,放在一个运算数之前,运算数可以是任意类型。它返回值是一个字符串,该字符串说明运算数的类型。

    console.log(typeof 1);          // number
    console.log(typeof(1));          // number
    console.log(typeof(NaN));        // number
    console.log(typeof(Number.MIN_VALUE));  // number
    console.log(typeof(Infinity));      // number 
    console.log(typeof("123"));       // string
    console.log(typeof(true));        // boolean
    console.log(typeof(window));       // object
    console.log(typeof(document));      // object
    console.log(typeof(null));        // object
    console.log(typeof(eval));        // function
    console.log(typeof(Date));        // function
    console.log(typeof(sss));        // undefined
    console.log(typeof(undefined));     // undefined

 

typeof是一个一元运算符,它返回的结果 始终是一个字符串,对不同的操作数,它返回不同的结果。
具体的规则如下:
一、对于数字类型的操作数而言, typeof 返回的值是 number。比如说:typeof(1),返回的值就是number。
上面是举的常规数字,对于非常规的数字类型而言,其结果返回的也是number。比如typeof(NaN),NaN在
JavaScript中代表的是特殊非数字值,虽然它本身是一个数字类型。
在JavaScript中,特殊的数字类型还有几种:
Infinity 表示无穷大特殊值
NaN            特殊的非数字值
Number.MAX_VALUE     可表示的最大数字
Number.MIN_VALUE     可表示的最小数字(与零最接近)
Number.NaN         特殊的非数字值
Number.POSITIVE_INFINITY 表示正无穷大的特殊值
Number.NEGATIVE_INFINITY 表 示负无穷大的特殊值

以上特殊类型,在用typeof进行运算进,其结果都将是number。

二、对于字符串类型, typeof 返回的值是 string。比如typeof("123")返回的值是string。
三、对于布尔类型, typeof 返回的值是 boolean 。比如typeof(true)返回的值是boolean。
四、对于对象、数组、null 返回的值是 object 。比如typeof(window),typeof(document),typeof(null)返回的值都是object。
五、 对于函数类型,返回的值是 function。比如:typeof(eval),typeof(Date)返回的值都是function。
六、如 果运算数是没有定义的(比如说不存在的变量、函数或者undefined),将返回undefined。比如:typeof(sss)、typeof(undefined)都返回undefined。

看完了六条规则,再回头看一下,是不是很简单了……

JavaScript数据类型是非常简洁的,它只定义了6中基本数据类型

    • null:空、无。表示不存在,当为对象的属性赋值为null,表示删除该属性
    • undefined:未定义。当声明变量却没有赋值时会显示该值。可以为变量赋值为undefined
    • number:数值。最原始的数据类型,表达式计算的载体
    • string:字符串。最抽象的数据类型,信息传播的载体
    • boolean:布尔值。最机械的数据类型,逻辑运算的载体
    • object:对象。面向对象的基础

 

posted @ 2022-11-03 11:13  泠风lj  阅读(122)  评论(0编辑  收藏  举报