首页 > web前端 > js教程 > 正文

js-笔记

不言
发布: 2018-04-26 14:31:20
原创
1317 人浏览过

本篇文章给大家分享的就是一点js的笔记,有兴趣的朋友可以看一下

1、js会进行一次预编译处理;

var a; 
if (!(“a” in window)) { 
   a = 1; 
}
登录后复制

alert(a); // undefined
这样,题目的意思就非常清楚了:首先声明a,然后判断a是否在存在,如果不存在就赋值为1,
很明显a永远在window里存在,这个赋值语 句永远不会执行,所以结果是undefined。

2、函数声明会覆盖变量声明,但不会覆盖变量赋值 来看栗子

function value(){ 
   return 1; 
} 
alert(typeof value);    //”function”
登录后复制
登录后复制

尽快变量声明在下面定义,但是变量value依然是function,也就是说这种情况下,
函数声明的优先级高于变量声明的优先级,但如果该 变量value赋值了,那结果就完全不一样了:

function value(){ 
   return 1; 
} 
var value = 1; 
alert(typeof value);    //”number”
登录后复制
登录后复制

该value赋值以后,变量赋值初始化就覆盖了函数声明。

浅拷贝只是拷贝了基本类型的数据,对于数组或对象的话,拷贝的只是其内存地址,因此存在元对象被篡改的可能;

function copy(p) { 
   let c = {}; 
   for(let i in p) { 
       c[i] = p[i]; 
   } 
   return c; 
}
登录后复制
登录后复制

1、js会进行一次预编译处理;

var a; 
if (!(“a” in window)) { 
   a = 1; 
} 
alert(a); // undefined
登录后复制

这样,题目的意思就非常清楚了:首先声明a,然后判断a是否在存在,如果不存在就赋值为1,
很明显a永远在window里存在,这个赋值语 句永远不会执行,所以结果是undefined。

2、函数声明会覆盖变量声明,但不会覆盖变量赋值 来看栗子

function value(){ 
   return 1; 
} 
alert(typeof value);    //”function”
登录后复制
登录后复制

尽快变量声明在下面定义,但是变量value依然是function,也就是说这种情况下,
函数声明的优先级高于变量声明的优先级,但如果该 变量value赋值了,那结果就完全不一样了:

function value(){ 
   return 1; 
} 
var value = 1; 
alert(typeof value);    //”number”
登录后复制
登录后复制


该value赋值以后,变量赋值初始化就覆盖了函数声明。

浅拷贝只是拷贝了基本类型的数据,对于数组或对象的话,拷贝的只是其内存地址,因此存在元对象被篡改的可能;

function copy(p) { 
   let c = {}; 
   for(let i in p) { 
       c[i] = p[i]; 
   } 
   return c; 
}
登录后复制
登录后复制

相关推荐:

js另一种写法分享

js实现模糊查询实例详解

以上是js-笔记 的详细内容。更多信息请关注PHP中文网其他相关文章!

相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板