javascript --学习基础总结

  闭包

  下面是百度百科的解释:

    闭包是指可以包含自由(未绑定到特定对象)变量的代码块;这些变量不是在这个代码块内或者任何全局上下文中定义的,而是在定义代码块的环境中定义(局部变量)。

  也就是说一个代码块中使用了自由变量

var d=10;
    function df(){
    console.log(d);//这个时候d就是自由变量了
}

  那下面来看一个简单的闭包的例子:

let t1=(function d(){
    var dd=1;
    return function(){
        return dd++;
    };
})();//立即执行
console.log(t1());//1
console.log(t1());//2

  那为什么第一次和第二次方法的值会不同呢?

  其实正是因为在返回的函数中使用了一个自由变量,为了使用这个自由变量,编译器会

    保存function d(){}的执行上下文

   //说静态变量区

    共享function d(){}的变量,这也是为什么第一次是1第二次是2了

时间: 2024-11-16 04:29:03

javascript --学习基础总结的相关文章

JavaScript学习基础篇【第1篇】: JavaScript 入门

JavaScript 快速入门 JavaScript代码可以直接嵌在网页的任何地方,不过通常我们都把JavaScript代码放到<head>中,由<script>...</script>包含的代码就是JavaScript代码,它将直接被浏览器执行.第二种方法是把JavaScript代码放到一个单独的.js文件,然后在HTML中通过<script src="..."></script>引入这个文件. 例一:放在head内 <

JavaScript学习----基础知识

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>JavaScript Study Basi

JavaScript学习基础

基本语法    JavaScript语法和Java语言类似,每个语句以 : 结束,语句块用 {...}包起来.JavaScript并不强制要求在每个语句的结尾加: ,但是建议都加上,不给自己找麻烦.    注释分为行注释(//)和块注释()两种.数据类型    Number       // JavaScript不区分整数和浮点数,统一用Number表示,以下都是合法的Number类型: var num1 = 123; //整数123 var num2 = 0.456;//浮点数0.456 va

javascript 学习基础

ECMAScript:翻译,核心,解释器; DOM:document object model   操作HTML.document; typeof a; NaN和NaN是不相等的;isNaN用来检测; == 先转换类型,然后比较,即隐式类型转换,减号也是; === 不转换类型,直接比较; 闭包:子函数可以使用父函数的局部变量; 匈牙利命名法:类型前缀(变量用),首字母大写(函数用); %求模:求余数; 三目运算符?:    条件?语句1:语句2; break:中断整个; continue:中断本

JavaScript学习 - 基础(五) - 对象

String对象 更详细转:http://www.w3school.com.cn/jsref/jsref_obj_string.asp //-------------------------------------------------------- // string对象属性: // length var x = [1,2,3,4,5,6] document.write(x.length) //6 //---------------------------------------------

JavaScript学习 - 基础(六) - DOM操作

DOM:DOM定义了访问HTML 和XML 文档的标准:1.核心DOM 针对结构化文档的标准模型2.XMK DOM 针对XML文档的标准模型3.HTML DOM 针对HTML文档的标准模型 DOM节点:整个文档是一个文档节点(document对象)每个html元素是元素节点(element对象)html元素内的文本是文本节点(text对象)每个html属性是属性节点(arrtibute对象)注释是注释节点(comment对象) <div id="XX">XX <div

JavaScript学习 - 基础(八) - DOM 节点 添加/删除/修改/属性值操作

html代码: <!--添加/删除/修改 --> <div id="a1"> <button id="a2" onclick="add()">add</button> </div> <div id="a3"> <button onclick="del()">del</button> </div> &l

我的javascript学习之路(一)对象之基础

做了2个多月的ajax项目,对js的学习觉得了深入了不少,把自己的一些学习的经验贴出来,希望对初学者有所帮助,也希望大家能指出我的错误之处或者不当之处. javascript 是基于对象的语言,为什么这么说呢,需要仔细思考. js的单根继承体系需要仔细了解,我觉得在js的世界里本身没有类的概念,他只有对象Object,不像java语言本身就有了Object然后又有Class,js中我们可以自己根据他的语言来构件类这一对象,因为没有语言本身的支持,所以方法就各种各样了,但是只要我们掌握了js的本质

JavaScript学习指南之第一章Hello JavaScript!最基础的JavaScript入门

JavaScript学习指南笔记 第一章 Hello JavaScript! JavaScript简介 JavaScript属于网络端的脚本语言. JavaScript 被数百万计的网页用来改进设计.验证表单.检测浏览器.创建cookies,以及更多的应用. 能够与网页进行完美的集成.. 目前在因特网领域,也是比较流行的一种脚本语言. JavaScript是一种轻量级的编程语言. JavaScript是可插入HTML页面的编程代码. JavaScript插入HTML页面后,可有所有的浏览器所执行