博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
js语法注意点
阅读量:3958 次
发布时间:2019-05-24

本文共 2241 字,大约阅读时间需要 7 分钟。

  1. 如果省略var关键字就声明关键字,那么该变量会被定义为全局变量(不推荐)。
function f() {
num = 3; } f(); console.log(num) //结果为3
  1. undefined 存在的意义是为了正式区分空对象指针(null)和未经初始化的变量。
  2. 利用Boolean()方法可将各种类型的值转化为布尔值。其中需要注意的,空字符串为false,Number类型任何非零数字值,包括无穷大,均为true;0和NaN(Not a Number)均为false。
  3. NaN任何涉及到该值的操作,如NaN/10都会返回NaN。它不等于任何值,包括其本身。
alert(NaN === NaN) //输出结果为 false
  1. isNaN方法可判断一个值是否是NaN,如果参数是字符串,会自动转换为数值;如果是布尔值,则true->1,false->0;
console.log(isNaN(NaN))     //true    console.log(isNaN(10))      //false    console.log(isNaN("10"))    //false    console.log(isNaN("blue"))  //true    console.log(isNaN(true))    //false
  1. String类型一旦初始化就无法更改其值。下面代码的实现过程其实是:初始化str,再为str创建一个新的副本,再将副本赋值。
var str = 'zed';    str = 'zed1'    console.log(str) //zed1
  1. 逻辑与&&为短路操作符,即若左边条件为假,不会判定右边,不论真假,连看都不看一眼。
  2. =====,推荐使用前者。==在判定之前会把两者转换为类型相近。
console.log(1 == '1') //true    console.log(1 === '1')//false    console.log(1 == true)//true    console.log(1 === true)//false    console.log(null == undefined)//true    console.log(null === undefined)//false
  1. switch语句中,如果有意不写break,最好给出注释。
var n = 2;    switch (n) {
case 1: case 2: //合并两种情形 console.log(1 + ' or ' + 2); break; case 3: console.log(3); break; default: console.log(101); break; }
  1. 与其他很多语言不同的是,switch语句可以用任何数据类型,甚至是表达式(那些语言一般只能用数值型)。
var con = 'hhzed';    switch (con) {
case "hahah": console.log('hhh'); break; case 'hh' + 'zed': console.log(1); break; default: console.log(con); break; }
  1. 函数的参数列表,定义和调用的时候,参数不必需一一对应,因为传入的参数列表是一个数组,第一个,第二个参数为arguments[0] ,arguments[1],命名的参数只是便于操作。
  2. ES中函数没有签名,故也无法像其他语言实现重载。
  3. ES中所有函数的参数均为按值传递,引用类型变量也是,就是把地址作为值传给函数内部的局部变量。下面的代码证明了此点:
var obj = {
name: 'zed' } function f(object) {
object.name = 'xxxx'; } f(obj); console.log(obj.name) // xxxx
var obj = {
name: 'zed' } function f(object) {
object.name = 'xxxx'; object = {
name: 'yyyyy' } } f(obj); console.log(obj.name) //xxxx ,如果作为引用传给函数,那么结果应为yyyyy,故传递的是地址值
  1. 作用域链:保证对执行环境有权访问的所有变量和函数的有序访问。
  2. 垃圾收集:标记清除,引用计数(已废弃)
  3. 基本数据类型存放在栈中,引用类型变量存放在堆中。

未完待续…

转载地址:http://chozi.baihongyu.com/

你可能感兴趣的文章
hdu——1106排序(重定向)
查看>>
hdu——1556Color the ball(树状数组)
查看>>
hdu——1541Stars(树状数组)
查看>>
快速幂的精简代码
查看>>
求大数乘方的前n位数字(对数加快速幂)
查看>>
hdu——2602Bone Collector(第一类背包问题)
查看>>
hdu——1711Number Sequence(kmp专练)
查看>>
strstr函数和find函数的异同
查看>>
Java的反射
查看>>
HTTP请求之POST与GET区别
查看>>
SSM结合Redis
查看>>
优化数据库的八种方法
查看>>
Java Web服务收到请求时线程的情况以及session情况
查看>>
SSM配置文件信息加密实现
查看>>
@Produces注解
查看>>
谈谈序列化—实体bean一定要实现Serializable接口?
查看>>
实用小技巧之电脑如何滚动截屏/截取长图
查看>>
Eclipse离线安装Java Decompiler插件
查看>>
Http预请求options
查看>>
未来设计师的工作模式?从室内设计领域的实时设计说起 | Mixlab趋势
查看>>