最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

JavaScript变量声明详解_javascript技巧

来源:懂视网 责编:小采 时间:2020-11-27 21:29:22
文档

JavaScript变量声明详解_javascript技巧

JavaScript变量声明详解_javascript技巧:定义在函数体外的都属于全局变量,定义在函数体内的属于局部变量。这里的定义是指通过var声明的。 JavaScript有隐含的全局概念,意味着你不声明的任何变量都会成为一个全局对象属性。例如: 代码如下: function test(){ myname = huming
推荐度:
导读JavaScript变量声明详解_javascript技巧:定义在函数体外的都属于全局变量,定义在函数体内的属于局部变量。这里的定义是指通过var声明的。 JavaScript有隐含的全局概念,意味着你不声明的任何变量都会成为一个全局对象属性。例如: 代码如下: function test(){ myname = huming

定义在函数体外的都属于全局变量,定义在函数体内的属于局部变量。这里的定义是指通过var声明的。

JavaScript有隐含的全局概念,意味着你不声明的任何变量都会成为一个全局对象属性。例如:

代码如下:
function test(){
myname = "huming";
alert(myname);
}
test();  // "huming"
alert(myname);  //"huming"

两个结果是一样的,说明myname是一个全局变量。

那么,隐式全局变量和明确定义的全局变量有没有区别呢。答案肯定是有的,看下面的例子:

代码如下:
// 定义三个全局变量
var global_test1 = 1;
global_test2 = 2; // 反面教材
(function () {
global_test3 = 3; // 反面教材
}());
// 试图删除
delete global_test1; // false
delete global_test2; // true
delete global_test3; // true
// 测试该删除
alert(typeof global_test1); // "number"
alert(typeof global_test2); // "undefined"
alert(typeof global_test3); // "undefined"

由上面的例子可以看出:在函数之外通过var定义的global_test1不能被删除,而没有经过var定义的global_test2和global_test3都被删除了(无论是否是在函数体内创建)。

总结来说,在函数体外通过var声明的全局变量不能被删除,而隐式全局变量是可以删除的。

这里要注意了:JavaScript有一种行为叫做“hoisting”(悬置/置顶解析/预解析)。

我们通过一个例子来说明:

代码如下:
var myname = "huming"; //声明全局变量
function test() {
alert(myname);
var myname = "local_huming";
alert(myname);
}
test();

你猜两次alert的内容一致吗??显然不一致,一致还用说吗。实际输出是:"undefined", "local_huming"。

上面的例子等同于

代码如下:
var myname = "huming"; //声明全局变量
function test() {
  var myname;
  alert(maname);
  myname = "local_huming";
  alert(myname); // "local"
}
test();

第一次alert输出的myname并不是你以为的全局变量,而是和它在一个作用域(一个函数体)内的局部变量。虽然它还没有被声明,但被当作是声明了。这就是所谓的“hoisting”。

这样应该就明白了吧。当你在函数体中使用了一个变量,又在之后重新声明的话,就可能产生错误。

书写规范:

代码如下:
function test() {
var a = 1,
b = 2,
c = a + b,
d = {},
e,
f;
// function body...
}

好处在于:

1、所有局部变量都定义在函数开始,方便查找;

2、防止变量在定义之前使用的逻辑错误。

小伙伴们是否了解了javascript的变量声明了呢,以上内容很详细也很易懂,最后的总结也很中肯,小伙伴们不要错过。

文档

JavaScript变量声明详解_javascript技巧

JavaScript变量声明详解_javascript技巧:定义在函数体外的都属于全局变量,定义在函数体内的属于局部变量。这里的定义是指通过var声明的。 JavaScript有隐含的全局概念,意味着你不声明的任何变量都会成为一个全局对象属性。例如: 代码如下: function test(){ myname = huming
推荐度:
标签: 技巧 定义 js
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top