js 细节
1、js中var a=s=1和var a=1,s=1的区别
function fl() {
var q = w = ;
}
function fl1() {
var a = , s = ;
}

看出问题所在了吗?
var q=w=1 中的s在函数执行后变成全局变量了
2、
var a = {n:};
var b = a;
a.x = a = {n:};
console.log(a.x);// --> undefined
console.log(b.x);// --> {n: 2}
上面的代码很简单,但能做对的很少;
下面为本人理解:说明: var a = {n: 1}; var b = a; 定义这里的{n: 1}内存地址为 A; b和a都指向地址A;
1、在a.x = a = {n:2}代码中由于“.”的运算符是最先计算的,所以会出现a.x=undefined;这时地址A的值为{n: 1,x:undefined};
2、再运算符相同从右到左开始算起, a = {n: 2};此时a的地址改变了,值为 {n:2};
3、执行 a.x = a;这是最关键的点 ,因为a.x已经执行了代表地址A的一个x值,这里可以把a.x直接做为地址A中的x指向位置,所以这里变为地址A {n: 1,x: {n: 2}};但b又指向地址A,所以b.x值为{n:2}
可查看此处: https://www.cnblogs.com/vajoy/p/3703859.html 更好理解
js 细节的更多相关文章
- 被忽略的js细节
今天在写一个程序,出了一点小bug,找了许久许久,终于把问题给揪了出来,真相大白那一刻感觉好蛋疼--深刻体会到了语言之间的差异. <script type="text/javascri ...
- Ext.js细节:在MVC中处理Widget Column,GetCmp和ComponentQuery, Id和ItemId
针对EXT.JS版本的演进,要不断的学习新的最佳实践方法. 比如,在定义组件时,尽管用itemid,而不是id. 在搜索组件时,尽量用ComponentQuery,而不是getCmp. 在MVC中处理 ...
- js细节
1.小心函数中的“s“ getElementsByTagName:得到的是数组 getElementById:得到的是对象 2.js 中设置哪一项被选中 subject.selectedIndex = ...
- html css js 细节
细节1 1.Chrome中文界面下会将小于12px的字体默认显示为12px,解决方法:在CSS中加入-webkit-text-size-adjust:none; 2.link可以加载除CSS以外的其他 ...
- 项目中用到的ext及js细节
1.js中无replaceAll方法,但能够用replace(regex," "),第一个參数是正則表達式,第二个參数是string,eg:str.replace(/\r\n/g, ...
- js基础细节
js细节 1.所有的全局变量都是window的属性. 语句 var a=1; 等价于 window.a=1; 用 "变量名称" in window 来验证全局变量是否声明. 2.所 ...
- 方便大家学习的Node.js教程(一):理解Node.js
理解Node.js 为了理解Node.js是如何工作的,首先你需要理解一些使得Javascript适用于服务器端开发的关键特性.Javascript是一门简单而又灵活的语言,这种灵活性让它能够经受住时 ...
- Vue.js 和 MVVM
MVVM 是Model-View-ViewModel 的缩写,它是一种基于前端开发的架构模式,其核心是提供对View 和 ViewModel 的双向数据绑定,这使得ViewModel 的状态改变可以自 ...
- [学姿势]实验室搬砖+node学习
这周开始进行收尾工作,我当然没有进行核心技术的开发,主要负责的是对web端进行展示上的修修补补,主要包括添加VLC播放器.rtsp视频流以及一些js细节. 1.VLC 全称为Video Lan Cli ...
随机推荐
- HttpClient工具类的使用
package com.hourui.gmall.util; import org.apache.http.HttpEntity; import org.apache.http.HttpStatus; ...
- Jenkins Pipeline Job构建配置
1.创建pipeline job任务,新建任务>输入任务名称>选择“流水线”>点击[确定] 添加描述,This is my first test pipelin ...
- Codeforces Choosing Laptop 题解
这题实在是太水了,具体看注释 蒟蒻的方法是一边找过时的电脑一边比大小 蒟蒻不才,只会C++ 其实还会free basic,但它已经过时了 附: 本题洛谷网址 Codeforces网址 希望蒟蒻的题解能 ...
- QTP测试web时:打开ie浏览器进行录制但qtp录制脚本为空
1. 关闭ie的保护模式:设置——internet选项——安全——取消勾选“启用保护模式” 这一步很关键,之前试过很多步骤,只有这个成功了. 修改后如果可行即可.如果不行再进行下面操作: 2.关闭杀毒 ...
- 玩转Django2.0---Django笔记建站基础十一(一)(音乐网站开发)
第十一章 音乐网站开发 本章以音乐网站项目为例,介绍Django在实际项目开发中的应用,该网站共分为6个功能模块分别是:网站首页.歌曲排行榜.歌曲播放.歌曲点评.歌曲搜索和用户管理. 11.1 网站需 ...
- lind.ddd博客笔记索引
先占位 整理 写博客呢 可以理解为一个动手的过程 写博客呢和实际动手也是一段差距
- 微软的github 上面 有 Docker.DotNet 嗯 作为 菜 只有欣赏的额
.NET Client for Docker Remote API step one 需要下载的 猛戳 Docker.DotNet
- 创建自定义路由处理程序(Creating a Custom Route Handler) | 定制路由系统| 高级路由特性 |精通ASP-NET-MVC-5-弗瑞曼
自定义实现 IRouteHandler
- Redis(八):zset/zadd/zrange/zrembyscore 命令源码解析
前面几篇文章,我们完全领略了redis的string,hash,list,set数据类型的实现方法,相信对redis已经不再神秘. 本篇我们将介绍redis的最后一种数据类型: zset 的相关实现. ...
- python3操作MySQL的模块pymysql
本文介绍Python3连接MySQL的第三方库--PyMySQL的基本使用. PyMySQL介绍 PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2中 ...