中级训练接着就紧锣密鼓的开始了。

  首先是关于变量,变量的作用是给一个数据值标注名称. 注:JavaScript中变量名,函数名,参数名的命名规范:至少由字母,下划线,美元符号,数字其中的一种组成,但不能以数字开头.变量的定义,如:var num =5。关于变量的引用,我觉得这句话已经说的很形象了——数据本来不具有名称,之所以使用变量,就是为了通过某个名称来称呼这样一种不具有名称的数据. 所谓"引用",可以认为是用变量名来取出其代表的数据值.就像在许许多多的箱子里面通过箱子的名称,找到该箱子里面的内容。变量名如上面的num,就像是一个盒子,它里面装着5这样一个东西,当然,object这样到对象,那里面就像是装了很多盒子,盒子里面又放了值。

  接着就是关于代码的运行了,js中的代码是从上到下,从左至右依次运行的,但是有一种情况除外,那便是定义语句。代码在运行的时候,javacript中的定义语句会被提前到所有代码之前执行,不过为了方便还是应该写在调用变量之前。值得一提的是,提前执行的仅仅是定义语句,而关于赋值语句却是没有提前的,例如:

console.log(num);

var num =5;

console.log(num);

运行这段代码输出的就是:

undefined

5

  然后就是关于函数的嵌套,函数到嵌套就是在函数内部还可以声明和调用函数,有点递归的意思,但递归是调用自己,其实递归也很强大的,就像是尼克劳斯·维尔特说的,递归的强大之处在于它允许用户用有限的语句描述无限的对象。因此,在计算机科学中,递归可以被用来描述无限步的运算,尽管描述运算的程序是有限的。一个很简单得阶乘例子:

而函数的嵌套则是在函数内部声明或者调用另外一个函数。

  最后讲到的就是作用域了。作用域指的是名称(变量名与函数名)的有效范围。JavaScrpit中有两种作用域:1.全局作用域 2.局部作用域 全局作用域是指在所有函数之外(即最外层代码)的作用域.在所有函数之外进行声明的变量或函数属于全局作用域,全局作用域中的变量就是全局变量,全局作用域中的函数就是全局函数. 局部作用域是指所有在函数的内部进行声明的变量或函数,这些变量(又称局部变量)或函数仅在该函数内部才有效。注意:当一个变量名既是局部变量又是全局变量时,会优先访问局部变量.也就是说,局部变量在其作用域内的优先级高于外层作用域的同名变量。按我的理解就是,离这个变量赋值近一点的就优先,也就是就近原则。

  js中级训练大概就是这样。

codefordream 关于js中级训练的更多相关文章

  1. codefordream 关于js初级训练

    这里的初级训练相对简单,差不多都是以前知识温习. 比如输出“hello world”,直接使用console.log()就行.注释符号,“//”可以注释单行,快捷键 alt+/,"/*   ...

  2. 我的JS 中级学习篇

    在codefordream上进入中级学习后,感觉立马从js的基础学习往前跳了好远,上面的东西好像都是第一次看到一样.这时候才发现,说来也曾接触过js,但是这时候才发现对js的认识就停在知道两点:js中 ...

  3. Js中级复习

    JS中级复习—— 1,this   就是js的关键字 用途:指向某一个对象 如何判断this指向: 函数(方法)内—— 一种以函数的方式调用(不带.)this指向window 一种以方法的形式调用(函 ...

  4. JS中级 - 02:表单、表格

    getElementsByTagName() getElementsByTagName() 方法可返回带有指定标签名的对象的集合. getElementsByClassName() 返回文档中所有指定 ...

  5. js中级6

    1.动画 (1)Css样式提供了运动 过渡属性transition  从一种情况到另一种情况叫过渡 transition:time          linear                 de ...

  6. 11-22 JS中级复习

    1.this js的关键字, 用途:指向某一个对象. 如何判断this指向 函数(方法)内 一种以函数的方式调用(不带.) this指向winodw 一种以方法的形式调用(函数名前面带.)this指向 ...

  7. js中级小知识5

    元素的属性 div.attributes是所有标签属性构成的数据集合 div.classList是所有class名构成的数组集合 在classList的原型链上可以看到add()和remove() 1 ...

  8. js中级小知识4

    1.针对表单 form   input     select      textarea type="radio/checkbox/passdord/button/submit/reset/ ...

  9. js中级小知识2

    1.面向对象 js一开始就是写网页特效,面向过程的,作者发现这样写不好,代码重复利用率太高,计算机内存消耗太大,网页性能很差.所以作者就收到java和c的影响,往面向对象靠齐.js天生有一个Objec ...

随机推荐

  1. 2015-12-21(box-sizing:border-box)

    最近新学了一个方法box-sizing:border-box,可以忽略margin,padding,border等所要占的位置,比如,你在做响应式网页时,当你所做的网页宽度是符合当前电脑屏幕宽度时,但 ...

  2. Ubuntu14.04或16.04下安装JDK1.8+Scala+Hadoop2.7.3+Spark2.0.2

    为了将Hadoop和Spark的安装简单化,今日写下此帖. 首先,要看手头有多少机器,要安装伪分布式的Hadoop+Spark还是完全分布式的,这里分别记录. 1. 伪分布式安装 伪分布式的Hadoo ...

  3. *HDU 1237 栈

    简单计算器 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submi ...

  4. Android使用Application的好处

    如果一个应用程序有2个入口的,1个入口程序打开修改其中的内容,怎么实现另一个入口的数据也修改呢? 下面就用到Application来实现数据的共享,因为一个应用程序只有一个Application,Ap ...

  5. dos清除缓存

    ipconfig /flushdns ,DNS缓存就被清除了. ipconfig /displaydns查看DNS缓存

  6. 无参数实例化Configuration对象以及addResource无法加载core-site.xml中的内容

    core-site.xml中配置的fs.default.name是hdfs://localhost:9000.但是这里读取出来的是本地文件系统.原因暂不知?有谁知道?

  7. Oracle EBS - Profile Setting

    EBS Profile Setting (Personalization Basics): Personalization Basics For R12 Forms Enable personaliz ...

  8. Hibernate中使用Criteria查询

    忽略一些配置,测试代码如下: Session session= HibernateUtil.getSession(); Transaction tx= session.beginTransaction ...

  9. 四则运算安卓客户端UI截图(部分)

    1.我们组安卓手机客户端UI设计主要由林培文同学负责,界面中用到的素材全部由他一人用PS制作,所以在素材来源上当属原创啦.正因为UI由一个人设计,同时他还得分担少量后台代码的编写,颇多的工作量与人才短 ...

  10. Python黑帽编程2.2 数值类型

    Python黑帽编程2.2  数值类型 数值类型,说白了就是处理各种各样的数字,Python中的数值类型包括整型.长整型.布尔.双精度浮点.十进制浮点和复数,这些类型在很多方面与传统的C类型有很大的区 ...