你不知道的javascript(中卷)笔记

<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8">
    <title>你不知道的javascript(中卷)</title>
</head>

<body>
    <script type="text/javascript">
    /*
         //封装对象包装
         var a = new Boolean(false);
         if(!a){
         	console.log("!a 为true")//没有输出,因为不会执行道这里,new 的a为一个对象不是布尔值,所以!a都是false
         }
         else{
         	console.log("!a 为false"); //
         }
          //封装对象拆装
    	    var s1 = new String("abc");
    	    var s2 = s1+"";
    	    console.log(typeof(s1));// object
    	    console.log(typeof(s2));// string
         */

    /*
    //new的字符和tostring的串比较
    var  s1 = new String("Hello world!");
    var s2  = s1.toString();

     console.log(s1==s2);  //true 只比较值
     console.log(s1===s2); // false 比较两个对象是否完全一致,当指向通一个对象的时候为true‘*/

    /*赋值与引用
    var a = 1;
    var b = a;
    a++;
    console.log(a);//2
    console.log(b);//1

    var arr = [1,2,3];
    var  arr1 = arr;
    arr.push(4);

    console.log(arr);//[1,2,3,4]
    console.log(arr1);//[1,2,3,4]
    //静态的变量是通过值来传递的,可变的对象是通过引用来传递的,*/

    /*
    //js数值类型
    //js 数值类型,没有真正意义的整形,
    console.log(43===43.0); //true
    var a = 323.32323;
    console.log(a.toFixed(2)) // 保留两位小数
    console.log(a.toPrecision(2))////保留两位有效数字
    console.log(43..toFixed(3));// 第一个.是数值的小数点
    console.log(parseInt(1.2)); //直接取整数部分
    console.log(parseInt(1.5));
    console.log(parseInt(1.6));
    console.log(Number.isInteger(43.0))//true
    */

    /*
       //数组和字符串的区别
        var a = "abc";
        a[0] = "z";
        console.log(a); //abc
        var b = ["a","b","c"];
        b[0] = "z";
        console.log(b); //["z","b","c"]
        console.log(a.charAt(0));
        //数组可以通过下标修改改下标对应的值,但是字符串不可以
        */

    /*
    var a ;
         console.log(a);//undefined
         */
    /*

     //闭包
     function  foo(){
        var a = 2;
        function bar(){
        	  console.log(a)
        }
        return bar;
     }
     var baz = foo();
     console.log(baz);
     //baz();
     */

    /*
    	//正则
    	var str = ‘width : 100px ;‘;// width: r(100px);
		var reg = /(\w+)(\s*)(?::)\2(\d+(?:px))\2;$/;
		console.log(str.replace(reg,"$1:r($3);"));*/
    /*var s = "二个如果43543gergreg";
    var reg = /^[\u4e00-\u9fa5]$/;
    console.log(s.match(s,"\u4e00-\u9fa5"));
    */
    </script>
</body>

</html>
<!--
    \1,\2: 内部引用,第几个括号的内容
    $1,$2: 外部引用,第几个括号的内容

 -->

  

时间: 2024-10-05 04:19:21

你不知道的javascript(中卷)笔记的相关文章

你不知道的JavaScript中,读书笔记

七种内置类型 null, undefined, boolean, number, string, object, symbol typeof null === 'object' // true null 是 typeof 是 object 的唯一的假值 typeof function 会返回 'function' 使用 typeof x !== 'undefined' 比直接判断 x 更加安全,因为不会引发 reference error

《你不知道的JavaScript》读书笔记(二)词法作用域

JavaScript 采用的是 词法作用域 的工作模型. 定义 词法化:大部分标准语言编译器的第一个工作阶段叫词法化(单词化),这个过程会对源代码中的字符进行检查,如果是有状态的解析过程,还会赋予单词意义. 词法作用域:定义在 词法阶段 的作用域. 词法作用域由谁决定:由你在写代码时将 变量 和 块作用域 写在哪里来决定.因此大部分情况下,词法分析器处理代码时会保持作用于不变. [例] function foo(a){ var b = a * 2; function bar(c){ consol

《你不知道的JavaScript》读书笔记(一)作用域

名词 引擎:从头到尾负责整个 JavaScript 程序的 编译 及 执行 过程. 编译器:负责 语法分析 及 代码生成. 作用域:负责收集并维护由所有声明的标识符(变量)组成的一系列查询,并实施一套非常严格的规则,确定当前执行的代码对这些标识符的访问权限. LHS:赋值操作的左侧(理解为赋值操作的目标是谁,LHS 查询 试图找到变量的容器本身,并对其 赋值 ). RHS:赋值操作的右侧(理解为谁是赋值操作的源头,RHS 查询 就是 查找 某个变量的值). JavaScript 的编译 Java

你不知道的javascript 上卷 读书笔记

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> </body> <script type="text/javascript"> { let j; for(j=0;j<10;j

你不知道的javascript(上卷卷)笔记

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>你不知道的javascript(上卷)</title> </head> <body> </body> </html>

你不知道的Javascript(上卷)读书笔记之一 ---- 作用域

你不知道的Javascript(上卷)这本书在我看来是一本还不错的书籍,这本书用比较简洁的语言来描述Js的那些"坑",在这里写一些博客记录一下笔记以便消化吸收. 1 编译原理 在此书中,开始便提出:Javascript是一门编译型语言,我一开始以为这是国内翻译的锅,翻译的不够准确,后来我还专门去github看了,作者确实是将Js描述为一门编译型语言(compiled language).然而我认为作者更想表达的是Js也拥有和Java一般的特定的编译过程.而不是传统得认为只是单纯的进行&

JavaScript中的this - 笔记

之前一直对this的指向很模糊,找了一些别人的博客看,又重新看了一下<你不知道的JavaScript>,感觉基本上是弄懂了,挑一些重点的地方记录一下,有些地方对我来说书上解释写的不够多,所以自己做下补充以方便理解,有理解错的地方还望指出. 一.澄清误区 首先你需要知道: 1.this并不指向函数自身 2.this的作用域在任何情况下都不指向函数的词法作用域. 举个例子: function foo() { var a = 2; this.bar(); } function bar() { con

《编写可维护的javascript》读书笔记(中)——编程实践

上篇读书笔记系列之:<编写可维护的javascript>读书笔记(上) 上篇说的是编程风格,记录的都是最重要的点,不讲废话,写的比较简洁,而本篇将加入一些实例,因为那样比较容易说明问题. 二.编程实践 1.UI松耦合 第一.将css从javascript中抽离(要改变dom样式数据,应该去操作dom的class名而非dom的style属性,后续要修改此样式只需到对应的css文件中修改而不用修改js文件): 第二.将javascript从HTML中抽离,比如下面的写法是不好的 <!-- 不

《你不知道的JavaScript》三卷读后感

本系列的作者是Kyle Simpson,上卷译者赵望野.梁杰,中卷译者单业,下卷译者单业.姜南. 我个人觉得第一卷是本系列最好的(必读),而第二卷虽然也讲解了很多知识点,但是对于异步和性能的那部分提及了信任问题上,我不敢苟同,毕竟开源的大环境下,林子大了什么鸟都有,不能因为一两个问题而对所有的开源项目都抱以怀疑,而Promise如文中介绍的一样,真正上手后真的会爱不释手,配合async.await一起使用以及一些新的语法,可以节省不少代码,易用程度不亚于那些流行的异步框架(关键还是在于真正去用,