js 细节
2024-09-04 07:03:51
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全兼容检测浏览器类型及版本
- windbg不识别pdb文件符号
- Linux kernel develop -- Hello World
- 看了一本Unity3D的教程
- Effective Java 44 Write doc comments for all exposed API elements
- [Ubuntu] Ubuntu搭建VPN服务器pptpd
- linux 下RMAN备份shell脚本
- 无DLL线程注入
- 推送 -- error:Not get deviceToken yet
- solr的配置文件及其含义
- python并发编程之多线程二
- 如何写一个SSH项目(一)程序设计大体思路
- git 忽略无效解决办法
- TensorFlow架构学习
- Centos6.5部署Sonar6.7.1备注
- 对于python setup.py install安装的包如何卸载
- 约会 音频mm教你追女孩
- kaggle竞赛_mnist_10%
- Arithmetic Slices LT413
- 论文笔记——PRUNING FILTERS FOR EFFICIENT CONVNETS