JavaScript复习笔记(2)——作用域、函数

为了准备笔试面试,重新开始系统的学习JavaScript,一边学习一边顺便给师弟师妹开个小灶,这是给他们准备的一道练习题,最后控制台会输出什么?

var a=(0,1);
function ScopeTest(){
    var b=(c=2,3);
    console.log(a);
}
if(0==false){//判断成功
    ScopeTest();//输出1
}
if(1===false){//判断失败
    ScopeTest();
}
(function(){
    console.log(a);//输出1
    console.log(c);//2
    console.log(a+""+c);//12
    console.log(a+[]);//1
    console.log(b);//Uncaught ReferenceError: b is not defined
})();

全局变量:a、c

局部变量:b

普通函数只定义,调用时才会执行

匿名函数直接执行,匿名函数的特征是1.没有函数名,2.加了各种奇怪的符号使得他不再是函数而是一个表达式,所以加()也是同理。

变量的作用域会自动向下延伸。函数中定义的变量,即可在函数内部使用,也可以在定义于此函数内的其他函数中使用(闭包

时间: 2024-10-29 19:09:49

JavaScript复习笔记(2)——作用域、函数的相关文章

javascript复习笔记

/* Javascript:用来在页面中编写特效,和HTML.CSS一样都是有浏览器解析 Javascript语言: 一.JS如何运行(javascript,jscript,vbscript,applet...) 二.输出 alert(什么类型都可以):可以做调试用 document.write("字符串"): 三.如何在HTML文档中使用JS 使用<script></script>将js语法嵌入到html中,可以使用多个,每一个之间都是有关联的. <sc

你不知道的JavaScript学习笔记1——作用域

处理程序三要素: 引擎:编译与执行过程. 编译器:语法分析与代码生成等. 作用域:收集并维护由所有声明的标识符(变量)组成的一系列查询,并实施一套非常严格的规则,确定当前执行的代码对这些标识符的访问权限. 示例: var a=2;的解析过程: 1.编译器 询问 作用域 是否已经有该名称的变量 是:忽略该声明,继续执行: 否:声明一个新变量,命名为a; 2.编译器为引擎生成代码 引擎运行首先询问作用域,在当前作用域集合中是否存在一个a的变量: 是:引擎会使用这个变量; 否:引擎继续查找该变量; 找

javascript学习笔记整理(函数)

javascript函数的声明和调用将完成某一特定功能的代码集合起来,可以重复使用的代码块. 一.函数的声明方式(创建) A.基本语法(function  关键字)function 函数名([参数1],[参数2]....){    函数体    [retrun]  //返回值} function a(){ alert(1) }; B.字面量定义的形式(匿名函数)var 变量=function ([参数1],[参数2]....){    函数体    [retrun]  //返回值} var a=

JavaScript复习笔记:Object(对象)

1:Js内置对象有 Number,Array,String,Date,Math 2:自定义对象 js提供了构建自定义对象.使用对象而不只是一个函数集合,是编写清洁,高效,可重复是的js代码的关键; 1)使用对象语法: 一个对象实际是只是一个容器,它将多个值,多个函数组合在一起.对象的值被称为属性,对象的函数被称为方法; ※使用new关键字创建对象 ex: var x = new Number('5') ※对象的使用:ObjectName.propertyName ->获取属性 ex: var s

Javascript读书笔记:函数定义和函数调用

定义函数 使用function关键字来定义函数,分为两种形式: 声明式函数定义: function add(m,n) { alert(m+n); } 这种方式等同于构造一个Function类的实例的方式: var add = new Function("m", "n", "alert(m+n);"); Function类构造方法的最后一个参数为函数体:"alert(m+n);",前面的都是函数的形参,参数必须是字符串形式的:&

JavaScript学习笔记【3】数组、函数、服务器端JavaScript概述

笔记来自<JavaScript权威指南(第六版)> 包含的内容: 数组 函数 服务器端JavaScript概述 数组 数组是动态的:根据需要它们会增长或缩减,并且在创建数组时无须声明一个固定的大小或在数组大小变化时无须重新分配空间. 数组可能是稀疏的:索引不一定要连续的,它们之间可以有空缺. 通常,数组的实现是经过优化的,用数字索引来访问数组元素一般来说比访问常规的对象属性要快很多. 数组继承自Array.prototype中的属性,它定义了一套丰富的数组操作方法. 如果省略数组直接量中的某个

JavaScript 笔记(1) -- 基础 &amp; 函数 &amp; 循环 &amp; ...

目录(代码编写): 显示数据 语法 变量 & 变量类型 对象 函数 事件 字符串 运算符 条件语句 循环语句 Break 和 Continue 使用 JS 近两年,现整理下一些基本: HTML 中的脚本必须位于 <script> 与 </script> 标签之间. 脚本可被放置在 HTML 页面的 <body> 和 <head> 部分中. 那些老旧的实例可能会在 <script> 标签中使用 type="text/javascr

JavaScript学习笔记(一)函数

function myFunc(theObject) { theObject.make = "Toyota"; } var mycar = {make: "Honda", model: "Accord", year: 1998}, var x, y; x = mycar.make; // x获取的值为 "Honda" myFunc(mycar); y = mycar.make; // y获取的值为 "Toyota&q

javascript数据类型(六)--- 函数对象之作用域和作用域链

一.作用域 1.1 理解 * 就是一块"地盘", 一个代码段所在的区域 * 它是静态的(相对于上下文对象), 在编写代码时就确定了 1.2  分类 * 全局作用域 * 函数作用域 * 没有块作用域(ES6有了) 1.3 作用 * 隔离变量,不同作用域下同名变量不会有冲突 1.4 作用域与执行上下文的区别 区别1:创建的时间不同 全局作用域之外,每个函数都会创建自己的作用域,作用域在函数定义时就已经确定了.而不是在函数调用时 全局执行上下文环境是在全局作用域确定之后, js代码马上执行之