JS基础_函数作用域】的更多相关文章

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <script type="text/javascript"> /* * 函数作用域 * * - 调用函数时创建函数作用域,函数执行完毕以后,函数作用域销毁 * * - 每调用一次函数就会创建一个新的函数作用域,他们之间是互相独立的 * * - 在…
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <script type="text/javascript"> var a = 123; function fun(){ alert(a);//undefined var a = 456; alert(a);//456 } fun(); alert…
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <script type="text/javascript"> /* * 作用域 * - 作用域指一个变量的作用的范围 * - 在JS中一共有两种作用域: * 1.全局作用域 * - 直接编写在script标签中的JS代码,都在全局作用域 * -…
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <script type="text/javascript"> /* * 函数 function * - 函数也是一个对象 * - 函数中可以封装一些功能(代码),在需要时可以执行这些功能(代码) * - 函数中可以保存一些代码在需要的时候调用 *…
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title></title> <script type="text/javascript"> /* * 创建一个函数,用来计算三个数的和 * * 可以使用 return 来设置函数的返回值 * 语法: * return 值 * * return后的值将会会作为函数的执行结果…
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <script type="text/javascript"> /* * 定义一个用来求两个数和的函数 * 可以在函数的()中来指定一个或多个形参(形式参数) * 多个形参之间使用,隔开,声明形参就相当于在函数内部声明了对应的变量 * 但是并不赋值…
虽然看了多次js函数作用域及变量提升的理论知识,但也是一知半解~ 这几天做了几道js小题,对这部分进行了从新的理解,还是有所收获的~ 主要参考书籍: <你不知道的JavaScript(上卷)>第一部分 <JavaScript高级程序设计>第四章 4.2 执行环境与作用域 理解要点: 1. js其实是一门编译语言,代码的执行分为两个阶段:(<你不知道的JavaScript(上卷)>) a.编译阶段 b.执行阶段 2. 作用域嵌套: 在当前作用域中无法找到某个变量时,引擎就…
15.作用域 概念: 规定变量或函数的可被访问的范围和生命周期 分类: 全局作用域 -就是指当前整个页面环境: 局部作用域(函数作用域) -就是指某个函数内部环境 l 变量的作用域 全局变量 - 定义在全局作用域中的变量:全局变量在任何位置均可访问 局部变量 - 定义在函数作用域中的变量:只能在该函数内访问该变量 Ø 全局变量: var a = ‘A’ ;   ---全局变量                  对比    |     var a = ‘A’;  ---全局变量 function…
1.在函数中,不使用var声明的变量都会变为全局变量 function fun(){ d=10; //window.d=10; }; console.log(10);//10 2.定义形参就相当于在函数作用域中声明了变量 function fun(d){ console.log(d);//undefined }; fun()…
1.运算符  1.赋值运算符和扩展运算符    1.赋值运算符 =    2.扩展运算符      +=,-=,*=,/=,%=,^=....      ex:        a=a+b;--> a+=b; a=a+1;--> a++,a+=1,++a      实现两个数字的换位:        a^=b; b^=a; a^=b;  2.条件运算符    条件运算符又称三目运算符.    单目(一元)运算符,只需要一个操作数或表达式.     ex:++,--,!    双目(二元)运算符,…
1.js没有块级作用域 if (true) { var color = “blue”; } alert(color); //”blue” for (var i=0; i < 10; i++){ doSomething(i); } alert(i); 2,变量定义 全局变量 变量定义:var和没有var function add(num1, num2) { var sum = num1 + num2; return sum; } alert(sum); //causes an error sinc…
函数声明和函数表达式 在 JS 中定义函数的方式有两种:一种是函数声明,一种是函数表达式. 例如: //函数声明 function fun() { ... } //函数表达式 var f = function() { ... } 它们的区别在于 JS 会把函数声明提升到作用域顶部,而函数表达式只有在执行到该语句时才会生效 关于函数的其他注意事项: 1.函数名后面跟圆括号 "()" 表示立即执行该函数,例如: var test = fun(); //表示执行 "fun"…
前言:JS 的作用域.执行上下文.this.闭包是老生常谈的话题,也是新手比较懵懂的知识点.当然即便你作为老手,也未必真的能理解透彻这些概念. 一.作用域和执行上下文 作用域: js中的作用域是词法作用域,即由 函数声明时 所在的位置决定的.词法作用域是指在编译阶段就产生的,一整套函数标识符的访问规则.(区别于词法作用域,动态作用域是在函数执行的时候确认的,js的没有动态作用域,但js的this很像动态作用域,后面会提到.词法作用域的概念十分重要,请多加记忆并理解.) 说到底js的作用域只是一个…
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <script type="text/javascript"> /* * 变量的声明提前 * - 使用var关键字声明的变量,会在所有的代码执行之前被声明(但是不会赋值), * 但是如果声明变量时不使用var关键字,则变量不会被声明提前 * * 函…
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <script type="text/javascript"> //函数对象() /* * 立即执行函数 * 函数定义完,立即被调用,这种函数叫做立即执行函数 * 立即执行函数往往只会执行一次 */ (function(){ alert("…
首先先引用<JavaScript权威指南>里面的一句话来开始我的博客:函数的执行依赖于变量作用域,这个作用域是在函数定义时决定的,而不是函数调用时决定的. 因此,就出现了如下的几串代码: var a="outside"; function area(){ var a="inside"; function b(){ return a; } return b(); } area(); 结果为:inside 这样的结果并不太出乎意料,因为在执行area()的时…
看到了一个16进制转换的小知识点,就验证了一下运行结果. #!/usr/bin/env python # coding:utf-8 # 看到了16进制转换的问题.顺便验证一下. a = 255 b = 1001 print(hex(a), hex(b)) c = 0xff d = 0x3e9 print(int(c),int(d)) 继续往前走, 学习一下global关键字 参考: http://www.pythonav.com/special/100-18.html 注意: global 是不…
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <script type="text/javascript"> /* * 标识符 * - 在JS中所有的可以由我们自主命名的都可以称为是标识符 * - 例如:变量名.函数名.属性名都属于标识符 * - 命名一个标识符时需要遵守如下的规则: * 1.…
基本类型:Undefind Null Boolean Number String 引用类型: 对象 在操作对象时,实际上实在操作对象的引用而不是实际的对象.为此,引用类型的值是按引用访问的. 从一个变量向另一个变量赋值引用类型的值,同样也会将存储在对象中的值赋值一份放到为新变量分配的空间中.不同的是,这个值的副本实际上是一个指针,而这个指针指向存储在堆中的一个对象 <script> var arr = {name:"jiayu"} doSomeThing(arr); con…
在介绍完函数的大体概念如定义.传参.作用域之后,本节主要介绍函数的几个细节部分. 一. print()函数与return的区别. 相同点:print与return都是向用户在输出界面上展示结果 不同点: print : 打印,即仅仅是将结果答应出来,让用户看到.而不能对print的结果进行调用.例如: def BiJiao(a,b): if a==b: print('a与b相等') elif a>b: print(a) else: print(b) >>> a=BiJiao(1,2…
在JavaScript中,函数的作用域链是一个很难理解的东西.这是因为JavaScript中函数的作用域链和其他语言比如C.C++中函数的作用域链相差甚远.本文详细解释了JavaScript中与函数的作用域链相关的知识,理解这些知识可以帮助你在处理闭包的时候避免一些可能出现的问题. 在JavaScript中,函数可以让你在一次调用中执行一系列的操作.有多种方式来定义一个函数,如下: 1.函数声明: function maximum(x, y) { if (x > y) return x; els…
定义函数:我们使用function标签来定义函数 使用函数:JavaScript函数定义完毕是不能自动执行的,需要我们调用或者事件触发,比如点击事件,鼠标事件,键盘事件等. 下面我们以点击事件为例,调用函数 参数:当我们调用函数的时候想给函数传递一些值的时候,可以使用参数. 返回值:一个函数执行完毕,可以将一个值返回给调用者. 通过return关键字返回一个值. 成员变量:在script标签里定义的变量,是成员变量,所有函数都可以使用. 局部变量:在方法里定义的变量和方法的参数是局部变量,只能在…
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <script type="text/javascript"> /* * * 创建一个Person构造函数 * - 在Person构造函数中,为每一个对象都添加了一个sayName方法,目前我们的方法是在构造函数内部创建的, * 也就是构造函数每执…
遍历:将数组中所有的元素都取出来 1.for循环 var arr = ["1","2","3"]; for(let i=0;i<arr.length;i++){ console.log(arr[i]) } JS中还为我们提供了一个方法,用来遍历数组 2.forEach()--存在兼容,只支持ie8以上浏览器 - 需要一个函数作为参数 像这种函数,由我们创建但不是由我们调用的,我们称为回调函数 - 浏览器会在回调函数中传递三个参数: 第一个参…
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <script type="text/javascript"> /* * JS中数据类型 * - String 字符串 * - Number 数值 * - Boolean 布尔值 * - Null 空值 * - Undefined 未定义 * -…
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <script type="text/javascript"> /* * JS中为我们提供了三种逻辑运算符 * ! 非 * - !可以用来对一个值进行非运算 * - 所谓非运算就是指对一个布尔值进行取反操作, * true变false,false变…
1.new关键字创建的是引用类型: eg. var box = new Object();      box.name = "Linda";//引用类型添加属性没问题     alert(box.name); 2.基本类型添加属性会输出undefined eg. var box = "Linda";      box.height = 185;    alert(box.height);//undefined 3.复制变量值:基本类型复制值本身,引用类型复制地址.…
函数的基本写法 func add(a int, b int) int { return a + b } 如果2个参数的类型一样,可以简写为 func add(a, b int) int { return a + b } 多个返回值 func add_substract(a int, b int) (int, int) { return a + b, a - b } 忽略多个返回值中的某一个 func add_substract(a, b int) (int, int) { return a +…
函数表达式和函数声明的区别.实际上,解析器在向执行环境中加载数据是,对函数表达式和函数声明并非一视同仁.解析器会率先读取函数声明,并使其在执行任何代码之前可用.而函数表达式,则必须等到解析器执行到它所在的代码行,才会真正的被解释执行. 请看下边的例子. 函数表达式:在执行期间,会报错. //函数表达式 alert(num_fun()); var num_fun = function(){ return 3; } 函数声明:可以正常运行. alert(num()); //函数声明 function…
①函数 1.函数名不区分大小写,变量名区分大小写. 2.require()和include() 区别:函数加载失败后,require给出一个致命错误,include只是一个警告. ②类 1.构造方法 function __construct($param) {} 2.类的实例化 $a = new className(); $x = $a->method1(param1); 3.继承,重载 extends关键字 使用final关键字禁止继承和重载 4.接口(implements):接口方法必须实现…