var a = {n:1};a.x=a={n:2}; a.x 为什么等于 未定义啊 alz老大给讲讲呗
alz(25644652) 10:37:32
因为a.x赋值的瞬间a指向原来的对象,而第二句执行完毕,a就指向{n:2}了。
色色 -- 北京(449211678) 10:38:21
a.x 会首先执行?
alz(25644652) 10:38:24
a.x=a={n:2}这个连等式,两个a同进退
色色 -- 北京(449211678) 10:39:04
a.x 会先执行么?
色色 -- 北京(449211678) 10:39:18
a.x会先求值?
alz(25644652) 10:39:19
第一个等号肯定是后执行的,但是a.x会先执行性
色色 -- 北京(449211678) 10:39:20
么
alz(25644652) 10:39:26
正确
色色 -- 北京(449211678) 10:39:55
3q啊
如是-回归(420303167) 10:41:11
a.x=a;
a={n:2}
如是-回归(420303167) 10:41:14
?
如是-回归(420303167) 10:42:32
这样,a.x 也是Undefined
alz(25644652) 10:42:58
你这拆分了是啥意思?
色色 -- 北京(449211678) 10:43:41
赋值是从右到左的
如是-回归(420303167) 10:44:01
我的意思是说,var a = {n:1};a.x=a={n:2}; 的执行是否和var a = {n:1};
a.x=a;
a={n:2}这样造价呢
如是-回归(420303167) 10:44:38
等价
如是-回归(420303167) 10:46:38
我说的不明白 吗?
如是-回归(420303167) 10:49:07
我我感觉应该是这样的,
1、a=obj,
2、a.x=a,
3、a=obj,
这样,当a被重新赋值后,a原来的属性 a.x就被remove掉了
alz(25644652) 10:50:08
当然不等价了
alz(25644652) 10:50:51
请用chrome测试这段代码,并认真分析log的顺序:
var _a;
window.__defineSetter__("a", function(v){
console.log("write a");
_a = v;
});
window.__defineGetter__("a", function(){
console.log("read a");
return _a;
});
var obj1 = {n:1};
var obj2 = {n:1};
obj1.__defineSetter__("x", function(v){
console.log("[obj1]write x");
this._x = v;
});
obj1.__defineGetter__("x", function(){
console.log("[obj1]read x");
return this._x;
});
obj2.__defineSetter__("x", function(v){
console.log("[obj2]write x");
this._x = v;
});
obj2.__defineGetter__("x", function(){
console.log("[obj2]read x");
return this._x;
});
a = obj1;
a.x = a = obj2;
console.log(a.x);
如是-回归(420303167) 10:51:34
,先 去测测
分享到:
相关推荐
JavaScript是一种广泛应用于网页和网络应用的编程语言...这份JS试卷将涵盖以上这些知识点,并附带答案,帮助初学者检验学习成果,加深理解。通过解决这些问题,初学者能够巩固JavaScript基础,为进阶学习打下坚实基础。
### JavaScript上机实验题知识点概览 #### 一、JavaScript表达式和逻辑控制语句的使用 ##### 实验目的 1. **理解变量**: 学习如何声明变量、初始化变量及变量的作用范围。 2. **数据类型掌握**: 包括基本数据类型...
JavaScript课堂习题答案JavaScript课堂习题答案JavaScript课堂习题答案JavaScript课堂习题答案JavaScript课堂习题答案JavaScript课堂习题答案JavaScript课堂习题答案JavaScript课堂习题答案JavaScript课堂习题答案...
标题中的“jQuery基于swiper.js公司发展历程水平时间轴特效”表明这是一个使用jQuery库和swiper.js插件来实现的项目,主要用于展示公司的发展历程,通过水平滚动的时间轴形式进行呈现。这个特效可能包含多个阶段或者...
本资源是 JavaScript 基础知识测试题,包含选择题和程序题,共 50 道选择题和 4 道程序题,供员工考核使用。下面是对每道题的答案解析: 1. 下面符合一个有效的 JavaScript 变量定义规则的是?(A)答案解析:...
本示例"在线考试连线题 js demo"显然是一个用JavaScript编写的用于创建连线题的演示项目。 JavaScript是网页开发中的主要脚本语言,负责处理页面的动态行为。在本demo中,JavaScript将用于创建交互式的连线界面,...
JavaScript 面试题知识点总结 JavaScript 面试题是前端开发领域中常见的面试题,涵盖了 JavaScript 基础、Web 前端开发等方面的知识点。本文将对 JavaScript 面试题的知识点进行总结,包括 Object.create、...
JavaScript语法分析器是一种用于解析JavaScript源代码的工具,它能够将源代码分解成一系列符合语法规则的结构,这些结构通常被称为语法树或抽象语法树(AST)。在本项目中,这个语法分析器是基于LL(1)文法构建的,...
JS逆向分析工具,v1.8.3版本
javascript,JavaScript习题JavaScript基础练习题JavaScript习题JavaScript基础练习题
根据给定的文件信息,以下是对每一道JS面试题的知识点进行详细解析: ### 第一题:编写一个方法求一个字符串的字节长度 #### 解析: 在这道题目中,我们需要编写一个函数来计算字符串的字节长度。这里的重点在于...
JS数据分析插件是利用JavaScript语言为网页提供数据可视化和分析功能的工具,它们通常能够帮助开发者高效地创建各种类型的数据图表,如柱状图、折线图、饼图、散点图等,以直观地展示复杂的数据。 在JS数据分析插件...
Vue.js是一种渐进式JavaScript框架,主要用于构建用户界面。它是由尤雨溪创建,并且是目前前端开发中非常流行的技术之一。Vue.js的面试题涉及到多个方面,包括路由管理、状态管理、组件通信、指令使用等,这些都是...
综上所述,"H5+canvas+js实现连线题"项目涵盖了前端开发的多个重要方面,包括HTML5 Canvas的图形绘制、JavaScript的事件处理和算法设计,以及良好的交互体验构建。对于想要提升Web开发技能或对互动教育应用感兴趣的...
本项目聚焦于利用ArcGIS JS API 实现最优路径分析,这是一种在网络图层中寻找成本最低、时间最短或者效率最高的路径的方法。这在物流配送、交通规划、紧急救援等诸多领域有着广泛的应用。 首先,我们要理解ArcGIS ...
为了提高 JavaScript 的性能,需要遵循严格模式、将 js 脚本放在页面底部、将 js 脚本将脚本成组打包、使用非阻塞方式下载 js 脚本、尽量使用局部变量来保存全局变量、尽量减少使用闭包、使用 window 对象属性方法时...
threejs源码(threejs知识点:1.模型分析)threejs源码(threejs知识点:1.模型分析)threejs源码(threejs知识点:1.模型分析)threejs源码(threejs知识点:1.模型分析)threejs源码(threejs知识点:1.模型分析)
《战胜Javascript必做练习50题》是一本专注于提升Javascript编程技能的实用教程书籍。书籍通过50个精心挑选的程序实例,旨在帮助具有一定HTML和Javascript基础的读者,通过实际操作和思考题来加深理解和提升编程水平...
在"基于ArcGIS api for js的路径分析例子"中,我们需要完成以下步骤: 1. **设置地图基础:** 使用ArcGIS API创建地图对象,这里我们选择百度瓦片地图作为底图。这可以通过配置地图的basemap属性为自定义的瓦片服务...
练完这100题,随便找个月入1W工作不闹着玩?