javascript 函数的变量

函数内部变量的几种特别情况:

1、全局变量与局部变量

函数内部变量声明带var关键字:

1 function global(){
2      var name = "lilei"  //带var的变量声明,仍是局部变量,外部找不到
3 }
4 global();
5 console.log(name) //无法打印

函数内部变量声明不带var关键字:

1 function global(){
2     name = "lilei" //此时是全局变量
3 }
4 global();
5 console.log(name) //‘lilei‘

2、函数内部变量提升

1 function test(){
2     console.log(v);
3     var v = 1;
4 }
5 test(); //undefined

上述代码等同于

1 function test(){
2     var v = undefined;
3     console.log(v);
4     v =1;
5         }
6 test()//undefiend

注意:变量声明会提升到函数顶部,但是变量赋值还是在原来的位置

3、函数作用域和变量声明提升的结合

var name = ‘Nelsen‘
function global(){
    console.log(name)
}
global(); //‘Nelsen‘

函数内部没有声明name,也没有初始化,此时函数会沿着作用域链查找到全局作用域,看是否有同名的变量声明,有则返回改初始化值

1 var name = ‘Nelsen‘;
2 function global(){
3     console.log(name)
4     var name;
5 }
6 global(); //undefined

此时函数外部声明name并初始化,函数内部也声明了name,且返回的是默认的undefined

时间: 2024-10-14 04:15:33

javascript 函数的变量的相关文章

JavaScript 中对变量和函数声明的提前示例

如题所示,看下面的示例(可以使用Chrome浏览器,然后F12/或者右键,审查元素.调出开发者工具,进入控制台console输入)(使用技巧: 控制台输入时Shift+Enter可以中途代码换行) var name = "xiaoming"; (function(){ var name = name || "小张"; console.info(name); })();// 小张 (function(){ name = name || "小张";

javascript语法基础-变量与函数

三 javascript语法基础-变量与函数 (一)变量的声明与运用 JavaScript中的变量与Java.C等强类型语言有很大区别,虽然在JavaScript中具有字符串.数字等数据类型. 变量申明语句的结构是var保留字加标识符,var和标识符之间用空格隔开. 赋值语句的结构是在变量和需要赋的值之间加上一个等号,例如a=1的含义是将变量a的值指定为1. 变量在定义的时候也可以同时赋值,如var a=1. PS:在变量使用前事先进行声明是个良好的编程习惯,这对将来学习Java等其他语言有帮助

关于javascript函数变量作用域问题

作用域 1.如果一个变量在函数体内部申明,则该变量的作用域为整个函数体,在函数体外不可引用该变量: 2.JavaScript的函数在查找变量时从自身函数定义开始,从"内"向"外"查找.如果内部函数定义了与外部函数重名的变量,则内部函数的变量将"屏蔽"外部函数的变量.

Javascript中函数及变量定义的提升

<html> <head> <title>函数提升</title> <script language="javascript" type="text/javascript"> //在全局对象中声明两个全局函数,反模式 function foo() { alert("global foo"); } function bar() { alert("global bar")

JavaScript函数定义和调用 变量作用域

本文是笔者在看廖雪峰老师JavaScript教程时的个人总结 JavaScript中函数定义可以是这样的格式 function 函数名(参数) { 函数体 } 也可以是这样的格式 var 函数名 = function (参数) { 函数体 }; 关键字一:arguments 获取全部参数 只在函数内部起作用,并且永远指向当前函数的调用者传入的所有参数.arguments类似Array但它不是一个Array.第一个参数是arguments[0]....[n] 关键字二:rest 获取 获取除了已定

规避Javascript多人开发函数和变量重名问题

函数和变量重名始终是一个令人头痛的问题,先讲变量吧,相信了解JS的朋友都知道,在JS中 是没有块级作用域的只有函数作用域,也就是说那些以大括号为界定符的代码块是管不住其中定义 的变量的作用域的,举例: 1 { 2 var num = 110; 3 } 4 console.log(num);//打印结果:110,而不是num is not defined 1 for(var j = 0; j < 5; j++); 2 console.log(j);//结果:5 怎么解决? 一般来说有经验的程序员会

JavaScript函数,作用域以及闭包

JavaScript函数,作用域以及闭包 1. 函数 (1). 函数定义:函数使用function关键字定义,它可以用在函数定义表达式或者函数声明定义. a. 函数的两种定义方式: * function functionName() {} * var functionName = function(){} b. 两种函数定义不同之处 1). 声明提前问题 函数声明语句   :声明与函数体一起提前 函数定义表达式 :声明提前,但是函数体不会提前 请看下面图示:绿色线上面实在js初始加载的时候,查看

javascript函数中的三个技巧【三】

技巧三: [函数绑定] 在javascript与DOM交互中经常需要使用函数绑定,定义一个函数然后将其绑定到特定DOM元素或集合的某个事件触发程序上,绑定函数经常和回调函数及事件处理程序一起使用,以便把函数作为变量传递的同时保留代码执行环境 <button id="btn">按钮</button> <script> var handler={ message:"Event handled.", handlerFun:functio

HTML 学习笔记 JavaScript (函数)

函数是由事件驱动的或者当他被调用时执行的可重复使用的代码块 实例 <!DOCTYPE html> <html> <head> <script> function myFunction() { alert("Hello World!"); } </script> </head> <body> <button onclick="myFunction()">点击这里</b