字符串方法、数组方法、对象方法、
发布人:shili8
发布时间:2024-12-28 22:43
阅读次数:0
**JavaScript 中的基本数据结构**
在 JavaScript 中,基本数据结构包括字符串(String)、数组(Array)和对象(Object)。这些数据结构提供了许多有用的方法来操作它们。
### 字符串方法####1. toUpperCase() 和 toLowerCase()
`toUpperCase()` 方法返回一个使用大写字母的新字符串,而 `toLowerCase()` 方法返回一个使用小写字母的新字符串。
javascriptconst str = "Hello, World!"; console.log(str.toUpperCase()); // HELLO, WORLD! console.log(str.toLowerCase()); // hello, world!
####2. trim()
`trim()` 方法移除字符串两端的空格。
javascriptconst str = " Hello, World! "; console.log(str.trim()); // Hello, World!
####3. split() 和 join()
`split()` 方法将一个字符串分割成数组,而 `join()` 方法将一个数组连接成字符串。
javascriptconst str = "apple,berry,cherry"; const fruits = str.split(","); console.log(fruits); // ["apple", "berry", "cherry"] const fruitStr = fruits.join(", "); console.log(fruitStr); // apple, berry, cherry
####4. replace()
`replace()` 方法将一个字符串替换成另一个字符串。
javascriptconst str = "Hello, World!"; console.log(str.replace("World", "JavaScript")); // Hello, JavaScript!
### 数组方法####1. push() 和 pop()
`push()` 方法向数组的末尾添加元素,而 `pop()` 方法从数组的末尾移除元素。
javascriptconst arr = [1,2,3]; console.log(arr.push(4)); //4console.log(arr); // [1,2,3,4] arr.pop(); console.log(arr); // [1,2,3]
####2. unshift() 和 shift()
`unshift()` 方法向数组的开头添加元素,而 `shift()` 方法从数组的开头移除元素。
javascriptconst arr = [1,2,3]; console.log(arr.unshift(0)); //4console.log(arr); // [0,1,2,3] arr.shift(); console.log(arr); // [1,2,3]
####3. splice()
`splice()` 方法向数组的指定位置添加或移除元素。
javascriptconst arr = [1,2,3]; console.log(arr.splice(1,0,4)); // [] console.log(arr); // [1,4,2,3] arr.splice(2,1); console.log(arr); // [1,4,3]
####4. sort()
`sort()` 方法对数组进行排序。
javascriptconst arr = [3,1,2]; console.log(arr.sort()); // [1,2,3]
### 对象方法####1. hasOwnProperty()
`hasOwnProperty()` 方法检查对象是否具有指定属性。
javascriptconst obj = { name: "John", age:30 }; console.log(obj.hasOwnProperty("name")); // trueconsole.log(obj.hasOwnProperty("city")); // false
####2. getOwnPropertyNames()
`getOwnPropertyNames()` 方法返回一个数组,包含对象自身拥有的所有属性的名称。
javascriptconst obj = { name: "John", age:30 }; console.log(Object.getOwnPropertyNames(obj)); // ["name", "age"]
####3. keys() 和 values()
`keys()` 方法返回一个迭代器,包含对象自身拥有的所有属性的名称,而 `values()` 方法返回一个迭代器,包含对象自身拥有的所有属性的值。
javascriptconst obj = { name: "John", age:30 }; console.log(Object.keys(obj)); // ["name", "age"] console.log(Object.values(obj)); // ["John",30]
####4. entries()
`entries()` 方法返回一个迭代器,包含对象自身拥有的所有属性的名称和值。
javascriptconst obj = { name: "John", age:30 }; console.log(Object.entries(obj)); // [["name", "John"], ["age",30]]
####5. assign()
`assign()` 方法将一个或多个源对象的属性复制到目标对象中。
javascriptconst target = { a:1, b:2 }; const source = { c:3, d:4 }; Object.assign(target, source); console.log(target); // {a:1, b:2, c:3, d:4}
####6. freeze() 和 seal()
`freeze()` 方法冻结一个对象,使得不能修改其属性,而 `seal()` 方法使得一个对象不能添加新的属性,但仍然可以修改已有的属性。
javascriptconst obj = { a:1, b:2 }; Object.freeze(obj); obj.c =3; // TypeError: Cannot add property c to object (#0) const obj2 = { a:1, b:2 }; Object.seal(obj2); obj2.c =3; // undefined
####7. preventExtensions()
`preventExtensions()` 方法使得一个对象不能添加新的属性。
javascriptconst obj = { a:1, b:2 }; Object.preventExtensions(obj); obj.c =3; // TypeError: Cannot add property c to object (#0)
####8. isExtensible() 和 isSealed()
`isExtensible()` 方法检查一个对象是否可以添加新的属性,而 `isSealed()` 方法检查一个对象是否已经被 seal() 方法冻结。
javascriptconst obj = { a:1, b:2 }; console.log(Object.isExtensible(obj)); // trueObject.preventExtensions(obj); console.log(Object.isExtensible(obj)); // falseObject.seal(obj); console.log(Object.isSealed(obj)); // true
####9. getOwnPropertyDescriptor()
`getOwnPropertyDescriptor()` 方法返回一个属性描述符,包含对象自身拥有的指定属性的信息。
javascriptconst obj = { a:1, b:2 }; console.log(Object.getOwnPropertyDescriptor(obj, "a")); // {value:1, writable: true, enumerable: true, configurable: true}
####10. defineProperty()
`defineProperty()` 方法定义一个属性描述符,用于指定对象自身拥有的属性的信息。
javascriptconst obj = {}; Object.defineProperty(obj, "a", { value:1, writable: true, enumerable: true, configurable: true, }); console.log(obj.a); //1
####11. deleteProperty()
`deleteProperty()` 方法删除一个对象自身拥有的指定属性。
javascriptconst obj = { a:1, b:2 }; Object.deleteProperty(obj, "a"); console.log(obj); // {b:2}
####12. ownKeys() 和 getOwnPropertyNames()
`ownKeys()` 方法返回一个数组,包含对象自身拥有的所有属性的名称,而 `getOwnPropertyNames()` 方法返回一个数组,包含对象自身拥有的所有属性的名称。
javascriptconst obj = { a:1, b:2 }; console.log(Object.ownKeys(obj)); // ["a", "b"] console.log(Object.getOwnPropertyNames(obj)); // ["a", "b"]
####13. getOwnPropertySymbols()
`getOwnPropertySymbols()` 方法返回一个数组,包含对象自身拥有的所有属性的符号。
javascriptconst obj = { a:1, b:2 }; console.log(Object.getOwnPropertySymbols(obj)); // []
####14. hasOwn() 和 hasOwnProperty()
`hasOwn()` 方法检查一个对象是否具有指定属性,而 `hasOwnProperty()` 方法检查一个对象是否具有指定属性。
javascriptconst obj = { a:1, b:2 }; console.log(Object.hasOwn(obj, "a")); // trueconsole.log(Object.hasOwnProperty(obj, "b")); // true
####15. isObject()
`isObject()` 方法检查一个值是否是对象。
javascriptconst obj = { a:1, b:2 }; console.log(Object.isObject(obj)); // trueconst str = "hello"; console.log(Object.isObject(str)); // false
####16. isPrimitive()
`isPrimitive()` 方法检查一个值是否是原始类型。
javascriptconst obj = { a:1, b:2 }; console.log(Object.isPrimitive(obj)); // falseconst str = "hello"; console.log(Object.isPrimitive(str)); // true
####17. isRegExp()
`isRegExp()` 方法检查一个值是否是正则表达式。
javascriptconst obj = { a:1, b:2 }; console.log(Object.isRegExp(obj)); // falseconst regExp = /hello/; console.log(Object.isRegExp(regExp)); // true
####18. isDate()
`isDate()` 方法检查一个值是否是日期。
javascriptconst obj = { a:1, b:2 }; console.log