zoukankan      html  css  js  c++  java
  • 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 }
  • 相关阅读:
    Vue学习手记01-安装和项目创建
    [Powershell] FTP Download File
    [PowerShell] Backup Folder and Files Across Network
    SSRS 请求并显示SharePoint人员和组字段
    Beta 冲刺 (2/7)
    Beta 冲刺 (1/7)
    BETA 版冲刺前准备
    事后诸葛亮
    Alpha 答辩总结
    α冲刺 (10/10)
  • 原文地址:https://www.cnblogs.com/spotman/p/10398682.html
Copyright © 2011-2022 走看看