博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
更优美的javaScript(1)
阅读量:6243 次
发布时间:2019-06-22

本文共 1525 字,大约阅读时间需要 5 分钟。

1,如何在浏览器环境 中创建和访问的全局变量:

myglobal = "hello"; // 不推荐写法

console.log(myglobal); // "hello"
console.log(window.myglobal); // "hello"
console.log(window["myglobal"]); // "hello"
console.log(this.myglobal); // "hello"

 

2,隐式全局变量和明确定义的全局变量间有些小的差异,就是通过delete操作符让变量未定义的能力。

  • 通过var创建的全局变量(任何函数之外的程序中创建)是不能被删除的。
  • 无var创建的隐式全局变量(无视是否在函数中创建)是能被删除的。

这表明,在技术上,隐式全局变量并不是真正的全局变量,但它们是全局对象的属性。属性是可以通过delete操作符删除的,而变量是不能的:

// 定义三个全局变量

var global_var = 1;
global_novar = 2; // 反面教材
(function () {
   global_fromfunc = 3; // 反面教材
}());
// 试图删除
delete global_var; // false
delete global_novar; // true
delete global_fromfunc; // true
// 测试该删除
typeof global_var; // "number"
typeof global_novar; // "undefined"
typeof global_fromfunc; // "undefined"

在ES5严格模式下,未声明的变量(如在前面的代码片段中的两个反面教材)工作时会抛出一个错误。

 

3,对于JavaScript,只 要你的变量是在同一个作用域中(同一函数),它都被当做是声明的,即使是它在var声明前使用的时候。

反例:myname = "global"; // 全局变量function func() {
    alert(myname); // "undefined"    var myname = "local";    alert(myname); // "local"}func(); 

上面的代码片段执行的行为可能就像下面这样:

myname = "global"; // global variablefunction func() {
   var myname; // 等同于 -> var myname = undefined;   alert(myname); // "undefined"   myname = "local";   alert(myname); // "local"}func();

 

4,循环

// 次佳的循环for (var i = 0; i < myarray.length; i++) {
   // 使用myarray[i]做点什么}

修改成:

for (var i = 0, max = myarray.length; i < max; i++) {
   // 使用myarray[i]做点什么}

 

5,

// 不好的 setTimeout("myFunc()", 1000);setTimeout("myFunc(1, 2, 3)", 1000); // 更好的setTimeout(myFunc, 1000);setTimeout(function () {
   myFunc(1, 2, 3);}, 1000);

 

转载地址:http://qbpia.baihongyu.com/

你可能感兴趣的文章
从源码分析scrollTo、scrollBy、Scroller方法的区别和作用
查看>>
南京大学周志华教授当选欧洲科学院外籍院士
查看>>
计算机网络与Internet应用
查看>>
oracle在线迁移同步数据,数据库报错
查看>>
linux性能剖析工具
查看>>
flutter中的异步
查看>>
计算机高手也不能编出俄罗斯方块——计算机达人成长之路(16)
查看>>
# 2017-2018-1 20155224 《信息安全系统设计基础》第七周学习总结
查看>>
scikit-learn预处理实例之一:使用FunctionTransformer选择列
查看>>
Cassandra监控 - OpsCenter手册
查看>>
《黑客与画家》读摘
查看>>
android 客户端 Cookie处理
查看>>
localtime与localtime_r
查看>>
Script to Collect Data Guard Diagnostic Information
查看>>
cell manager opening cell等待事件
查看>>
Autodesk 首届中国开发者夏令营将在6月19-20在北京举行
查看>>
Visual Studio 2012 Update 2 (KB2707250)
查看>>
MDX Step by Step 读书笔记(三) - Understanding Tuples (理解元组)
查看>>
Android 封装http请求的工具类
查看>>
黑书上的DP例题
查看>>