• [1009]JS语言精髓与编程实践笔记1


    之前一段时间看了4章 快速飘过 感觉后面有点蛋疼 重新开始仔细看

    目前只看到了第2章

    很多原来模糊的概念现在都有点清晰的认识了 写点小笔记 

    第一个问题 我也不知道咋描述这个问题 直接看代码把

    var str1 = "1";
    
    var str2 = "";
    
    var obj = {};
    
    typeof(str1 || obj); //"string"
    
    typeof(str1&&obj); //"Object"
    
    typeof(str2|| obj); //"Object"
    
    typeof(str2&&obj); // "string"

    这样的结果两句话基本可以解释清楚

    1. || 和 && 这两个运算符 既不改变运算元的数据类型,也不强制运算结果的数据类型

    2. 运算当结果确定的时候就没有继续解释执行下去的必要了(语言组织能力有待提高)

    第二个问题 关于 数据类型和引用类型的

    a = "a";
    b = new String("b");
    a.a=1;
    console.log(a.a); //undefined
    
    b.b=1;
    console.log(b.b);//1

    差不多就这个意思。。。

    第三个问题

    void 是表达式。 原来完全目有注意呃呃呃呃;

    void(console.log((function(a){console.log(a+"456");return "123";})("123")),123);

    chrome F12后 输入上面的代码 控制台结果是

    123456

    123

    当前表达是 返回 undefined

    应该可以理解 呃呃。。

    第四个问题

    好吧 其实是纠结void问题时候发现的

    void 1+1;  //NaN 

    这个情况还是挺好理解的 undefined +1  结果是 NaN

    再看下面一个代码

    void 1>>1; //0

    当时我都想到了 是不是涉及到存储内存的问题

    后来查了定义文档后发现了 原因

    就是在位运算时候 会有ToInt32(undefined)这一个强制转换发生。。。。

    第五个问题

     str1 = "abc"; //"abc"
    var str2 = "abc"; // undefined

    呃呃呃呃呃呃呃呃。。。。。。

    第一种情况 显示隐式的声明一个变量然后再执行附值。。所以结果是 “abc”

    第二种情况 var 是语句语法符号,不是运算符并且此处的= 是语法分割符而非运算符。

    再来个概念: JS中空语句,变量声明,函数声明以及控制子句都不产生返回值 也就是undefined啦

    嗯差不多了 希望能对阅读的你有所帮助。

  • 相关阅读:
    file_get_contents高級用法
    php缓存技术常用函数
    php爬虫的两种思路
    jQuery判断文本框是否为空
    Asp.net 实现图片缩放 无水印(方法二)
    C# winform关于DataGridView的一些操作
    PHP判断访问者手机移动端还是PC端的函数
    本地图片显示在网页
    如何安装 Composer
    国内开源镜像站
  • 原文地址:https://www.cnblogs.com/shane/p/3360335.html
Copyright © 2020-2023  润新知