js语法注意点

news/2024/7/19 13:10:18 标签: js, javascript
  1. 如果省略var关键字就声明关键字,那么该变量会被定义为全局变量(不推荐)。
javascript">    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。它不等于任何值,包括其本身。
javascript"> alert(NaN === NaN) //输出结果为 false
  1. isNaN方法可判断一个值是否是NaN,如果参数是字符串,会自动转换为数值;如果是布尔值,则true->1,false->0;
javascript">    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创建一个新的副本,再将副本赋值。
javascript">    var str = 'zed';
    str = 'zed1'
    console.log(str) //zed1
  1. 逻辑与&&为短路操作符,即若左边条件为假,不会判定右边,不论真假,连看都不看一眼。
  2. =====,推荐使用前者。==在判定之前会把两者转换为类型相近。
javascript">    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,最好给出注释。
javascript">    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语句可以用任何数据类型,甚至是表达式(那些语言一般只能用数值型)。
javascript">    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中所有函数的参数均为按值传递,引用类型变量也是,就是把地址作为值传给函数内部的局部变量。下面的代码证明了此点:
javascript"> var obj = {
        name: 'zed'
    }

    function f(object) {
        object.name = 'xxxx';
    }

    f(obj);
    console.log(obj.name) // xxxx 
javascript">    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://www.niftyadmin.cn/n/1257995.html

相关文章

js 中的Function类型

函数的创建有两种方式: 函数声明函数表达式 二者基本等价,除了 什么时候可通过变量访问函数的区别,以下将举例证明。 以函数声明的方式来创建,那么不论在什么时候访问函数,都是正确的,因为解析器有函数声…

js字符串方法

concat 字符串拼接方法,与数组中的concat()用法基本相同。一般来说不用,而是用更为简单的代替。 var str hello;console.log(str world);//hello worldconsole.log(str.concat( world));//hello worldcharAt & charCodeAt 二者都是根据传入的索…

关于APIcloud对应C#的 wcf框架作为后台,实现多库功能

首先,我是使用ajax原来的请求方式,并没有使用apicloud中封装的请求方式。 前端代码: function makeRequest() {//alert("inside makeRequest()");var settings {type: "GET",url: "http://192.168.0.105/Service1.…

堆参数-XMS 与-XMX的说明

XMS : JVM初始分配的堆内存 XMX : JVM最大允许分配的堆内存,按需分配 堆内存分配: JVM初始分配的堆内存由-Xms指定,默认是物理内存的1/64; JVM最大分配的堆内存由-Xmx指定,默认是物理内存的1/4。 默认空余堆内存小于40%时&…

js 属性

js中的属性分为 数据属性 和 访问器属性。 数据属性 一个数据属性,有四个描述其行为的特性。 Configurable是否能通过删除该属性从而重新定义该属性,能否修改其特性,能否把属性修改为访问器属性。默认值为true。Enumerable是否可枚举。默认…

JZOJ 4.15 1110——CQOI2009循环赛【dfs】【hash判重】

Description n支队伍打比赛,每两支队伍恰好比赛一场。平局时各得1分,而有胜负时胜者3分,负者0分。 假设三支队伍得分分别为3, 3, 3,则可能有两种情况: 队伍 A B C 得分 A - 3 0 3 B 0 - 3 3 C 3 0 - 3 队伍 A B C…

回调地狱和Promise

Promise是ES6中新增的语法,主要是解决原来回调地狱,也就是回调函数多层嵌套问题。 现在我有两个json文件,分别用ajax来请求,但是要求先请求data.json的数据,然后再请求data1.json的数据。 $.ajax({url: ./data1.json,…

201521123096《Java程序设计》第八周学习总结

1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结集合与泛型相关内容。 2. 书面作业 本次作业题集集合 1.List中指定元素的删除(题目4-1) 1.1 实验总结 实验中使用了scanner方法时,就需要使用sc.close()将其关闭。 1.2截图提交结…