• javascript笔记 (持续更新)


    1. 语言主要分为两大类:编译型语言解释型语言

    对于静态语言来说(如Java、C++、C),处理上述这些事情的叫编译器(Compiler),相应地对于JavaScript这样的动态语言则叫解释器(Interpreter)。

    这两者的区别用一句话来概括就是:

    编译器是将源代码编译为另外一种代码(比如机器码,或者字节码),而解释器是直接解析并将代码运行结果输出。我们常用的firebug就是一个JavaScript解释器。

    2. JavaScript引擎解析脚本时, “预编译” 阶段。

    首先会创建一个环境的上下文对象,然后把使用var声明的变量,作为上下文对象的属性,以undefined先行初始化使用function关键字声明的函数,也作为上下文对象的属性,定义出来,而函数则保留了定义的内容。----在这个过程中,函数定义的优先级 高于 变量定义

    3.立即执行函数+闭包

     1 var addFn = (function() {
     2   var i = 1;
     3   return function() {
     4     console.log(++i);
     5   }
     6 })()
     7 
     8 addFn();  //2
     9 addFn();  //3
    10 addFn();  //4
    11 addFn();  //5
    12 addFn();  //6

    4.区分

    函数申明 ->  function(){}

    函数表达式 -> (function(){})

    所以IIFE的两个括号的作用:

    //第一个圆括号:将匿名函数转换为函数表达式。
    //第二个圆括号:立即执行匿名函数

    5.封装的意义:

    不让别人改自己的封装的东西, 如果想让别人改的东西, 我们提供相应接口, 别人才能改

    6.递归:

    特征 -> 1.函数调用自身   2.递归入口    3.递归出口

    eg. 递归实现 1加到10的和

    1 function add(n) {
    2   if (n===1){
    3     return 1;
    4   } else {
    5     return n + add(n-1);
    6   }
    7 }
  • 相关阅读:
    编译问题汇总
    IAP测试购买失败,Error Domain=SKErrorDomain Code=0 "无法连接到 iTunes Store"
    关于H5移动端调试的那些事
    关于JS中this指向的说明
    关于UIControl响应事件说明
    绝对独创---关于直播(推流-拉流-服务器搭建)
    关于直播
    关于公司视频播放由mp4格式向m3u8格式转换的学习
    关于UIView中的endEditing:的使用
    关于UITableViewCell左滑显示多个功能的实现
  • 原文地址:https://www.cnblogs.com/spotman/p/10398682.html
Copyright © 2020-2023  润新知