JavaScript 函数与变量的几种特殊情况
来源:互联网 发布:匡恩网络 内部融资 编辑:程序博客网 时间:2024/06/01 09:39
函数与变量的几种特殊情况
1、变量的问题
在函数作用域中,定义局部变量,不使用 var 关键字,自动提升为全局变量。
相关代码:function fn(){ //定义局部变量-->不建议使用 str = "this is text"; console.log(str);//this is text}fn();//在全局作用域中,该变量是全局变量console.log(str);//this is text
2、变量的声明提前
console.log(str);
var str=’this is text’;
console.log(str);
等价于:
var str;
console.log(str);
str = “this is text”;
console.log(str);
相关代码:function fn(){ console.log(str); //undefined var str="this is text"; console.log(str); //this is text}fn();
3、按值传递
函数的形参是被调用时所传实参的副本。修改形参的值并不会影响实参。
相关代码:第一种://定义全局变量var num=100;//函数的形参function fn(num){ console.log(num); //100 num=num-10; console.log(num); //90}//函数的实参-->对应全局变量fn(num);console.log(num); //100第二种:var num=100;//函数的形参-->函数体中改变的都是形参的值,与全局变量无关function fn(){ console.log(num); //100 num=num-10; console.log(num);//90}fn(num);console.log(num); //90
4、全局变量与局部变量同名
全局变量与局部变量同名时,在函数作用域中只能找到局部变量。
相关代码://定义全局变量var str="this is text";function fn(){ console.log(str); //undefined var str = "this is Function"; console.log(str); //this is function}fn();console.log(str); //this is textvar str ="this is text"function fn (){ console.log(str); str="this is function"; console.log(str);}fn();console.log(str);
5、就近原则
相关代码:var str="this is text";function fn(){ console.log(str); //1.全局变量 var str ="this is function"; console.log(num); //1.全局变量 2.局部变量 3、形参}fn();
6、形参与局部变量
利用形参初始化局部变量
相关代码://定义全局变量var num=100;//定义全局函数function fn(str){ console.log(num);//当有形参时,输出的是100;当没有形参时,输出的是undefined //局部变量 var num=num; console.log(num);//100 //局部变量 num=num-10; console.log(num);//90}fn(str);
变量的问题:
当变量名与函数名相同时,会出现函数覆盖变量。
这里写代码片var num=100;var num=function(num){ console.log(num); //[Function:num] num=num-10; console.log(num); //NaN var num=num; //局部变量 console.log(num); //NaN return num; //返回值,局部变量}var num=num(num); //实参 --> 函数覆盖变量console.log(num); //NaN
阅读全文
0 0
- JavaScript 函数与变量的几种特殊情况
- javascript几种特殊的函数
- 函数返回局部变量的几种情况
- 函数返回局部变量的几种情况
- java replaceall方法替换String的几种特殊情况
- MFC定时器几种特殊情况的测试
- 构造函数初始化列表中成员变量必须初始化的几种情况
- 构造函数中,成员变量一定要通过初始化列表来初始化的几种情况
- 几种特殊的多线程函数
- JavaScript的特殊函数
- JavaScript的特殊函数
- 类的几种特殊的成员变量的初始化
- QTP几种特殊情况处理
- 用Powermock测试几种特殊情况
- 函数返回值的几种情况
- 函数返回值的几种情况
- 几种情况下析构函数的调用
- JS 函数调用的几种情况
- 几个特殊权限(set uid , set gid , sticky bit),软连接,硬链接
- C#字符串所包含的方法
- 数据结构之 矩阵 模板类
- Qt lnk1158 无法运行rc.exe 解决
- 你真正了解UI线程更新的几种方式吗—面试必备之深度揭秘
- JavaScript 函数与变量的几种特殊情况
- 1029. 旧键盘(20)
- 计算机网络第2章 物理层
- Spring学习笔记之通过FactoryBean配置Bean
- 【安全牛学习笔记】安装java、安装显卡驱动、安装网卡补丁、并发线程限制、电源优化
- 文件操作(2)
- JDBC中Statement接口、ResultSet接口中的方法
- Postman用法简介
- nginx img 403 forbidden问题的解决