zoukankan      html  css  js  c++  java
  • js基础知识点收集

    js基础知识点收集

    js常用基本类型

    function show(x) {
            console.log(typeof(x));    // undefined
            console.log(typeof(10));   // number
            console.log(typeof('abc')); // string
            console.log(typeof(true));  // boolean
            console.log(typeof([]));  // object
            console.log(typeof(function () {
            }));  //function
            console.log(typeof([1, 'a', true]));  //object
            console.log(typeof ({a: 10, b: 20}));  //object
            console.log(typeof (null));  //object
            console.log(typeof (new Number(10)));  //object
        }
        show();
    

    值类型:undefined, number, string, boolean
    引用类型:函数、数组、对象、null(一切引用类型都是对象,对象是属性的集合)

    js原型及原型链

    function Fn() { }
            Fn.prototype.name = '王福朋';
            Fn.prototype.getYear = function () {
                return 1988;
            };
    
            var fn = new Fn();
            console.log(fn.name);
            console.log(fn.getYear());
    

    fn是Fnnew出来的对象,fn.proto === Fn.prototype

    js原型链

     function Foo() {
        }
        var f1 = new Foo();
            //f1.a = 10;
        Foo.prototype.a = 100;
        Foo.prototype.b = 200;
        console.log(f1.a);//100
        console.log(f1.b);//200
    

    f1赋值的时候有

        console.log(f1.a);//10
        console.log(f1.b);//200
    

    原型链:访问一个对象的属性时,先在基本属性中查找,如果没有,再沿着__proto__这条链向上找,这就是原型链

    js原型链继承

          A = {
            a: function () {
                console.log('a');
            }
        }
        B= {
            b: function () {
                console.log('b');
            }
        }
        A.a();//a
        B.b();//b
        Object.setPrototypeOf(A,B);//把B的原型给A
        A.b();//b
    

    js上下文

    提到js的上下文先说下this关键字
    在函数中this到底取何值,是在函数真正被调用执行的时候确定的,函数定义的时候确定不了

    情况1:构造函数

       function A() {
            this.a = 'a';
            this.hello = function () {
                console.log(this.a);//a
            }
            console.log(this);//{a: "a"}
        }
        var a = new A();
        a.hello();
    

    如果函数作为构造函数用,那么其中的this就代表它即将new出来的对象。

    情况2:函数作为对象的一个属性
    console.log(this.a);//a

    情况3:函数用call或者apply调用

      var B = {
            b: 'b'
        }
        var A = function () {
            console.log(this.b);
        }
        A.call(B);//b
    

    当一个函数被call和apply调用时,this的值就取传入的对象的值。

    情况4:函全局 & 调用普通函数
    在全局环境下和普通函数调用的时候,都是window

  • 相关阅读:
    Tensorflow中实现BN为什么需要加入这个额外依赖?见CS231N作业源码
    为何神经网络权重初始化要随机初始化,不能以0为初始化
    Batch Normalization&Dropout浅析
    Git版本回退和撤销修改的区别
    linux下安装git提示”无法打开锁文件 /var/lib/dpkg/lock
    数据特征选择法
    深度学习笔记整理
    全面掌握IO(输入/输出流)
    startActivity时报错Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVI
    LitePal——Android数据库框架完整使用手册
  • 原文地址:https://www.cnblogs.com/lvhw/p/6667048.html
Copyright © 2011-2022 走看看