• JavaScript:基础知识点总结


    基础概念

    JavaScript(以下简称Js)中数据类型:Number 字符串 布尔值 数组 对象(Js的对象是一组由键值对组成的无序集合)

    Js中基础概念:变量(概念和Java中变量概念类似 指示某个可变的量),Js为动态语言,变量本身类型不固定

    Js中操作符:数学运算符 逻辑运算符 赋值运算符 比较运算符 三元运算符

    Js中流程控制:判断 循环

    函数

    计算机程序中的函数是一种代码抽象的方式

    Js中,用function关键字定义函数

    function abs(x) {
        if (x >= 0) {
            return x;
        } else {
            return -x;
        }
    }

    函数体内部语句在执行时,执行到return时,函数就执行完毕,并将结果返回。如果没有return语句,函数执行完毕后也会返回结果,只是结果为undefined

    Js中函数也是一个对象,因此第二种定义函数的方式如下:

    var abs = function (x) {
        if (x >= 0) {
            return x;
        } else {
            return -x;
        }
    };

    在这种方式下,function(x) { ... }是一个匿名函数,没有函数名,这个匿名函数赋值给了变量abs,通过变量abs就可以调用该函数

    在一个对象中绑定函数,称为这个对象的方法

    函数本身也是一个对象,这个对象是Function对象,这个对象有的方法是apply( ) call( ),要指定函数的this指向哪个对象,可以用函数本身的apply方法,它接收两个参数,第一个参数就是需要绑定的this变量,第二个参数是Array,表示函数本身的参数。apply(  )把参数打包成Array再传入,call(  )把参数按顺序传入

     高阶函数(Higher-order function):Js的函数其实都指向某个变量。既然变量可以指向函数,函数的参数能接收变量,那么一个函数就可以接收另一个函数作为参数,这种函数就称之为高阶函数。例子如下

    function add(x, y, f) {
        return f(x) + f(y);
    }

     闭包(Closure):看下面的例子,高阶函数除了可以接受函数作为参数外,还可以把函数作为结果返回。在函数lazy_sum中又定义了函数sum,并且,内部函数sum可以引用外部函数lazy_sum的参数和局部变量,当lazy_sum返回函数sum时,相关参数和变量都保存在返回的函数中,这种程序结构称为闭包。

    function lazy_sum(arr) {
        var sum = function () {
            return arr.reduce(function (x, y) {
                return x + y;
            });
        }
        return sum;
    }

    当我们调用lazy_sum( )时,返回的并不是求和结果,而是求和函数。例如 var f = lazy_sum([1, 2, 3, 4, 5]); 调用函数 f 时,才真正计算求和结果 f( );

    对象

    在Js世界中,一切皆对象

    typeof 123; // 'number'
    typeof NaN; // 'number'
    typeof 'str'; // 'string'
    typeof true; // 'boolean'
    typeof undefined; // 'undefined'
    typeof Math.abs; // 'function'
    typeof null; // 'object'
    typeof []; // 'object'
    typeof {}; // 'object'

    Js虽然也是面向对象,但是像类和实例之类的概念在Js中有很大出入。Js中不区分类和实例的概念。Js中时通过原型(prototype)来实现面向对象编程的。Js的原型链和Java的Class区别在,Js中所有对象都是实例,所谓继承关系不过是把一个对象的原型指向另一个对象

    函数也是一个对象,它的原型链 foo - Function.prototype - Object.prototype - null

    ES6中引入关键字class,让类的定义更加简单(少了很多坑)

    浏览器对象

    Js可以获取浏览器提供的很多对象,并进行操作。例如 window navigator screen location document

    其中document对象表示当前页面。由于Html在浏览器中以DOM形式表示为树形结构,document对象就是整个DOM树的根节点

     (非原创 侵删 内容来源https://www.liaoxuefeng.com/wiki/001434446689867b27157e896e74d51a89c25cc8b43bdb3000)

  • 相关阅读:
    4网页版四则运算
    新的项目与小组成员
    课堂作业4月8号
    2.四则运算03
    zencart新增categories分类表字段步骤
    zencart批量评论插件Easy Populate CSV add reviews使用教程
    广告域名审核之后跳转技术:点击域名A页面iframe框架下的链接,域名A跳转到域名B
    zencart设置产品始终免运费sql
    zencart简易页面ezpage后台编辑位置
    php获取当前页面的完整url
  • 原文地址:https://www.cnblogs.com/colin220/p/9350277.html
Copyright © 2020-2023  润新知