JavaScript进阶内容详解

JavaScript进阶内容详解

记录js进阶学习的相关内容,本篇算是一个系列的开篇,计划深度学习和js以及v8引擎相关的部分内容。

1.对象

基础

对象用来存放键值对,其中值得注意的是,存在两种方法去创建一个空的的对象。

js 复制代码
let user = new Object() // 构造函数方法
let user = {} // "字面量"方法

可以使用delete方法去移除对象属性

js 复制代码
delete user.name

多词属性,需要给键名加上引号

js 复制代码
let user = {
    "login name": "xxx"
    temp: 123
}

方括号

对象名中可以是方括号,此为计算属性,如下,可从fruit中获取相应值,目前在前端框架中似乎很少会这样去用。可能是因为响应式存在的原因。

js 复制代码
let fruit = prompt('123', 'apple');
let user = {
    [fruit]: 5
};
console.log(user.apple);

其本质上,和下面的代码相同,由此可见js的自由性,感觉和自然语言也没有什么区别了

js 复制代码
let fruit = prompt('123', 'apple');
let bag = {};
bag[fruit] = 5;

属性存在测试,'in'操作符

如下,in用于判断当前对象中是否存在某一个键值

js 复制代码
let bag = {
    fruit: 'apple'
}
console.log("name" in bag) //false
console.log("fruit" in bag) //true

其基本作用实际和console.log(bag.name === undefined)类似,那么既然可以通过undefine来判断是否存在键值,要in还有什么作用呢?那就是键名存在,但是其值为undefined的情况。

js 复制代码
let bag = {
    fruit: undefined
}

console.log(bag.fruit === undefiend) //false
console.log("fruit" in bag) //true

对象的排序

整数会按照升序排列,其他会按照创建顺序排列(注意:Number只能转化整数,如Number('1.2')就是错的)

相关推荐
布局呆星7 小时前
Vue Router :基础使用与嵌套路由实战
前端·javascript·vue.js
小码哥_常13 小时前
安卓开发秘籍:解锁10大性能优化秘诀
前端
try2find14 小时前
打印ascii码报错问题
java·linux·前端
郑州光合科技余经理14 小时前
同城O2O海外版二次开发实战:从支付网关到配送算法
开发语言·前端·后端·算法·架构·uni-app·php
冰暮流星15 小时前
javascript事件案例-全选框案例
服务器·前端·javascript
Csvn16 小时前
前端性能优化实战指南
前端
Moment16 小时前
2026 年,AI 全栈时代到了,前端简历别再只写前端技术了 🫠🫠🫠
前端·后端·面试
糯米团子74916 小时前
Web Worker
开发语言·前端·javascript
freewlt16 小时前
React Server Components 深度解析
前端·react.js·前端框架
wordbaby16 小时前
一次跨端 Loading 卡死复盘:把请求计数从 Axios 拦截器迁到 try/catch/finally
前端·axios