1<html>
2<body>
3<inputtype=""name=""/>
4</body>
5<script>
6/***
7*@type开心菜鸟系列----变量的解读(javascript入门篇)
8*@introduce{string}var玩法和全局变量和局部变量的玩法,如果感兴趣的就把代码复制一下。
9*@author{string}开心菜鸟
10*/
11varweiwu='20';
12console.info(this.weiwu);
13console.info(window['weiwu'])
14console.info(window.weiwu)
15console.info(weiwu)
16//他们都是相等的.20
17//总结:this在没有特意指定时候,永远指向咱们最牛叉的window,在这里如果有学过node.js的不要弄混了,因为node.js的老大是global
18console.info('--------继续往下看啊,来个更好玩的。---------')
19//varname='sssss';//@1把他注释取消掉和注释上,大家体验一下吧
20console.info(name);
21//总结:name,你妹,我曾经差点因为他死在js上,差一点疯掉,想要推翻自己的理论,
22//但是当我看了window的全局变量后,知道了,为什么会这样,因为他已经预先的声明了。
23
24console.info(age);
25//@2怪异啊,呵呵,我发现他的前面给个var,就会不报错啊,如果没有给var的话,就会报错啊。
26varage=30;
27//总结:首先这个东西其实很好理解,但是前提你要了解一件事,就是undefined和未声明变量的区别,
28//undefined是这个变量已经声明了,但是并没有赋予值,而你报未找到这个变量,那就是未声明变量。
29//但是有的人又问了为什么console.inf(age)下面才声明的varvarage=30;他会返回undefined的呢。下面给大家解释。
30console.info('--------继续往下看啊,来个更好玩的。---------')
31//vartest=20;
32functiontest(){
33return'thisiskaixinfunction';
34}
35//下面会输出什么啊
36console.info(javascript变量重新学习);//下面调用函数,这里就当做函数,如果把下面的注释了这里就是变量
37console.info(javascript变量重新学习());//我居然是函数啊
38//总结:证明test的变量和test函数都声明了,只是根据你使用的方式去调用相应的声明规则。
39//这个知识点,大家要知道:
40//1.当javascript被载入的时候,首先是需要检查一下语法是否正确,
41//2.去把页面上所有的varfunction这两个先声明了,不管是否在{内部},至于为什么下一节会提到.
42//3.然后才进行编译,当然原理我并不知道。
43console.info('--------继续往下看啊,来个更好玩的。---------')
44if(false)
45{
46varblockName='20';//偶的妈吖,你要干什么啊.不解,不懂.嘻嘻
47}
48console.info(blockName)//输出的结果是对的啊.
49//总结:你妹的,我已经声明了,你就是不给我赋值呗,
50//说一下,为什么会出现这种情况啊,这个可能就和作用域有关了,
51//其实很简单,在javascript中,凡是被iffor{}(块级)包过的他们并不会影响函数声明和变量的声明,
52//其实他们并没有作用域啊,今天我们只讲全局变量和局部变量.
53console.info('--------继续往下看啊,来个更好玩的。---------')
54varheihei=20;
55nimei=30;
56deleteheihei;
57deletenimei;
58console.info(heihei);//偶才是真的不死小强
59//console.info(nimei);//你咋报错了呢,完蛋死了.
60//真假小强,我现在发现了好多人并不注意一件事,就是var这东西,他是干毛的,下面演示,不急啊.
61varFscope='heihei';
62functionkaixin()
63{
64console.info(Fscope);//如果没有局部变量heihei,下面开始声明喽:undefined
65varFscope='localvariable'
66console.info(Fscope);
67}
68kaixin();
69//总结:
70//这个才是今天的重点,首先呢,我并不赞成写全局变量,这个以后会讲到
71//还有全局变量和局部变量相互污染了,你们懂的,命名是多大的一个学问,英文不好的,小心了.
72//在function内部里如果用var声明,就是局部变量,其实作用域并不同了,其实我并不想叫他为局部变量,
73//因为如果我说是作用域不同的话,后面大家可以会更好的理解作用域了.
74//在function中没有用var声明的变量话是全局的变量,在此声明一下,如果你代码的时候,声明变量全都用var
75//同值的时候才是不带的,
76//解释一下delete啦,其实没有用var声明的变量全是假招子
77//(1)通过var创建的全局变量(任何函数之外的程序中创建)是不能被删除的。
78//(2)无var创建的隐式全局变量(无视是否在函数中创建)是能被删除的。
79//至此全局变量和局部变量开心是学完了,肯定还有别的,但是不在这做讲解,咱们下一章在聊啊.
80//感谢你们和开心一起复习了一下js的基础部分,我希望大家能重视起来这章,因为很重要,声明(php不用var声明类属性了)node也要用var声明.
81</script>
82</html>

更多相关文章

  1. 如何使用变量创建数组?
  2. Angularjs:如何将范围变量传递给指令?
  3. 如何将razor变量传递给js
  4. 如何从Vue.js中的变量名加载组件?
  5. 将对象值传递给指令而不是任何其他数据变量
  6. 关于JavaScript变量声明及其初始化的问题
  7. 如何使用变量填充iframe源?
  8. 使用JavaScript多态在子类中创建唯一变量而不覆盖
  9. javascript入门笔记(1)——变量和计算

随机推荐

  1. Android系统启动-SystemServer下篇
  2. Android涉及到的设计模式
  3. Android中遍历文件夹、比较文件类型测试
  4. Android的手机震动
  5. android 9.0默认launcher
  6. Android Tutorial: Optimizing for Phone
  7. android 触摸手指动作放大和缩小图片
  8. Android联系人数据库全
  9. Android知识点剖析系列:深入了解layout_we
  10. Android画图Path的使用