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

时间: 2024-10-25 02:53:36

js基础知识点收集的相关文章

js基础知识点总结

js基础知识点总结 如何在一个网站或者一个页面,去书写你的js代码:1.js的分层(功能):jquery(tool) 组件(ui) 应用(app),mvc(backboneJs)2.js的规划():避免全局变量和方法(命名空间,闭包,面向对象),模块化(seaJs,requireJs) 常用内部类:Data Array Math String HTML属性,CSS属性HTML:属性.HTML属性="值":CSS:对象.style.CSS属性="值"; class和f

js基础知识点(只有点)

转自:2015年12月的文章 http://blog.csdn.net/u014326381/article/details/50176339 JavaScript: 作用域链.闭包.运行时上下文.this 原型链.继承 NodeJS基础和常用API 各种特效 进阶 JavaScript: 异步控制(Promise.ES6 generator.Async) 模块化的开发方式(AMD.CMD.KMD等等) JavaScript解释器的一些相关知识 异步IO实现 垃圾回收 事件队列 常用框架使用及其

JS基础知识点——原始类型和对象类型的区别

1.js类型 1.1 JavaScript语言规定了7种语言类型,他们分别是: Number(数字) Boolean(布尔值) String(字符串) Null (空) Undefined (未定义) Symbol (es6新增,表示独一无二的值) Object(对象) 其中,除了Object是对象类型,其他的都是原始(基本)类型. 并且基本数据类型的值不可改变,对象数据类型的值可以改变 2.typeof运算符 2.1 js中使用typeof能得到哪些数据类型 <script> // 基本数据

js基础知识总结(2016.11.1)

js基础知识点总结 如何在一个网站或者一个页面,去书写你的js代码:1.js的分层(功能):jquery(tool) 组件(ui) 应用(app),mvc(backboneJs)2.js的规划():避免全局变量和方法(命名空间,闭包,面向对象),模块化(seaJs,requireJs) 常用内部类:Data Array Math String HTML属性,CSS属性HTML:属性.HTML属性="值":CSS:对象.style.CSS属性="值"; class和f

JS基础知识总结

js基础知识点总结 如何在一个网站或者一个页面,去书写你的js代码:1.js的分层(功能):jquery(tool) 组件(ui) 应用(app),mvc(backboneJs)2.js的规划():避免全局变量和方法(命名空间,闭包,面向对象),模块化(seaJs,requireJs) 常用内部类:Data Array Math String HTML属性,CSS属性HTML:属性.HTML属性="值":CSS:对象.style.CSS属性="值"; class和f

ios基础-小知识点收集(1)

不积跬步,无以至千里;不积小流,无以成江海.----荀子 收集学习ios中的小知识点,每天进步一点点. (一)@class和 #import class:只声明类,不会引入类文件,加快编译速度,防止类相互import出错:在m中仍然需要import整个类文件. import导入整个类文件,在需要使用类中的变量.函数和协议的时候需要使用. (二)静态变量static.全局变量extern.局部变量.实例变量 static:为整类而非单个对象使用,隐藏封装在类中,对外不可见. 静态变量的优点: 1.

黑马程序员——Java I/O流基础知识点(File类)

File工具 File类就是用俩将文件或者文件夹封装对象,弥补流对象的不足--流只能操作数据,不能操作文件夹的 封装的是路径!!! 构造方法演示 1.可以将已有的未出现的文件或者文件夹封装成对象. File f1=new File("c:\\abc\\a.txt"): File f2=new File("d:\\abc","ab.txt"打印,会打印路径.:目录分隔符,为了更好地跨平台File. File类常见功能 1,创建 createNewF

fastclick 源码注解及一些基础知识点

在移动端,网页上的点击穿透问题导致了非常糟糕的用户体验.那么该如何解决这个问题呢? 问题产生的原因 移动端浏览器的点击事件存在300ms的延迟执行,这个延迟是由于移动端需要通过在这个时间段用户是否两次触摸屏幕而触发放大屏幕的功能.那么由于click事件将延迟300ms的存在,开发者在页面上做一些交互的时候往往会导致点击穿透问题(可以能是层之间的,也可以是页面之间的). 解决问题 之前遇到这个问题的时候,有在网上看了一些关于解决移动端点击穿透的问题,也跟着网上提出的方式进行了各项测试,最终还是觉得

node.js基础模块http、网页分析工具cherrio实现爬虫

node.js基础模块http.网页分析工具cherrio实现爬虫 一.前言      说是爬虫初探,其实并没有用到爬虫相关第三方类库,主要用了node.js基础模块http.网页分析工具cherrio. 使用http直接获取url路径对应网页资源,然后使用cherrio分析. 这里我主要学习过的案例自己敲了一遍,加深理解.在coding的过程中,我第一次把jq获取后的对象直接用forEach遍历,直接报错,是因为jq没有对应的这个方法,只有js数组可以调用. 二.知识点    ①:supera