新的一年开始了,今年的主要目标就是javascript,最近在看javascript高级程序设计(第三版),单纯的看书也是个很枯燥的事,所以就把看完的东西再写一遍吧,一方面加深印象,一方面理解不正确的也好让园子里面的大神们给提提意见。
这本书前两章主要是javascript简介以及在HTML中使用javascript,算是对javascript的一个简单的了解,从第三章开始就进入了真正的学习,那么我的读书笔记也从第三章开始写,第三章是基本概念,主要从语法、数据类型、流控制语句以及函数四个方面来讲解,今天我主要写一下关于数据类型之前的一些基础的内容。
javascript的语法主要借鉴了C以及其他C类语言的一些语法,所以如果有C或者JAVA之类的语言基础,那么在理解javascript语法的时候可能会更加容易一点。
javascript与java一样(本人是搞java的,所以就以java为例了),变量、函数名以及操作符等这些内容都是严格区分大小写,变量名hello和变量名Hello是完全不同的两个变量,不能混为一谈;另外在给函数命名的时候,是不能使用关键字作为函数名的,不然会出现问题的,举个例子,有一次我要写个删除的方法,当时也没想起delete是关键字,就用delete做了函数名,但是运行时候怎么都出来效果,刚开始还以为是函数内部的代码写错了,但是我把函数里面的代码全部删除掉只留下一个console.info()之后发现还是出不来效果,后来才想起delete是关键字,不能用来做函数名,改了名字之后才正确。
标识符就是属性名、变量名以及函数名、函数参数等这些名称,javascript的标识符和java的标识符一样,第一位必须是字母或者下划线(_)或者美元符号($),其他字母可以是数字、字母、下划线以及美元符号,虽然没有硬性规定标识符必须写成驼峰式的,但是为了阅读方便,我们还是约定俗称的把javascript的标识符写成驼峰式的。
javascript的注释和java的注释一致,单行的注释写为//,多行的注释写成/*注释内容*/的形式,多行注释除了第一行和最后一行,中间的部分可以有*号也可以没有*号,看大家的习惯了;
关于严格模式的内容,对我来说还是不是太懂,毕竟js这部分解除的并不是太多,看的时候在网上百度了一下关于严格模式的内容,严格模式顾名思义就是让javascript在更严格的模式下运行,这是ECMAscript5中添加的一个新的模式。那么设置严格模式的原因有哪些呢?主要有一下几个方面:
"严格模式"体现了Javascript更合理、更安全、更严谨的发展方向,包括IE 10在内的主流浏览器,都已经支持了严格模式,在严格模式下,代码的运行结果可能与正常模式的运行结果不相同,甚至在正常模式下运行的代码在严格模式下是无法运行的,那么怎么进入严格模式呢?
进入严格模式需要使用"use strict" ,如果要在整个脚本文件中使用严格模式,那么需要在脚本文件的第一行添加"use strict",此时整个脚本文件将以严格模式运行,如果没有放在第一行,那么是无效的,特别是对于多个脚本文件整合成一个文件的时候,那么就需要多注意一下了;如下面的例子,第一个<script>标签中的内容就是严格模式,第二个还是正常模式:
<script> "use strict" v = 1; console.info(v);//运行结果:"Uncaught ReferenceError: v is not defined" </script> <script> s = 2; console.info(this.s);//运行结果:"2" </script>
可以看到,在严格模式下,是不允许对未声明的变量进行赋值的,但是在正常模式下,未声明的变量赋值后默认是全局变量。如果把"use strict"放在单个函数的第一行,那么整个函数将以严格模式运行,如下所示:
function testUseStrict () { "use strict"; d = 3; console.info(d);//运行结果:"Uncaught ReferenceError: d is not defined" } testUseStrict();
将"use strict"放在函数第一行,那么整个函数将以严格模式的方式进行运行,这个方法为我们整合脚本文件提供了一种思路,我们可以将整个脚本文件放入到一个匿名函数中,立即执行这个匿名函数即可,如下所示:
<script> (function(){ "use strict"; var v = 11; console.info(v);//运行结果:11 })(); </script>
关于严格模式大家可以访问以下这个链接,这位大神写的就清晰多了,后面的javascript学习中用到严格模式的地方我也会标出来的。链接送上:http://www.ruanyifeng.com/blog/2013/01/javascript_strict_mode.html
javascript的语句和java几乎一样,都是以分号结尾,但是不同的是java中一行结束必须加上分号,但是在javascript中,一行结束是可以不加分号的,有解析器自己去判断语句的结尾,如下所示:
var a1 = 2 + 2 var a2 = 5 - 1; console.info(a1);//4 console.info(a2);//4
另外,在java中if语句是可以写成这个样子的if(condition) ....... ,javascript中也是可以这样写的,但是不管是结尾不加分号还是if条件语句不加{}的写法,在某些时候都会引起一些问题,所以最好还是写上的好;
javascript语言中也是存在一些关键字以及保留字的,这些关键字可以用来表示控制语句的开始或者结束,或者用语执行一些特定的操作,关键字是语言保留的,因此不能作为标识符,关于关键字和保留字大家可以上网搜索一下,我在这里就不把这些关键字保留字写出来了。
今天暂时就写到这里,关于javascript的学习我会持续更新的,希望能跟大家一起学习,写的有问题的地方也欢迎大家之处,谢谢。