三、基本概念

Week NO.1

3.1语法

        ECMAScript大量借鉴了C及其他类C语言(如:java和perl)。

       3.1.1区分大小写

       ECMAScript里一切都是区别大小写

       3.1.2标识符

       标示符必须以字母,下划线或美元符号($)为开头;(不能将关键字作为标识符)

       3.1.3注释

       a.单行注释  //

       b.多行注释  /**/

       3.1.4语句

       ECMAScript里语句以一个分号结尾,虽然不是必须的,但建议不要省略

3.2关键字和保留字

JavaScript关键词
breakcasecatchcontinuedefault
deletedoelsefinallyfor
functionifininstanceofnew
returnswitchthisthrowtry
typeofvarvoidwhilewith

JavaScript保留字
abstractbooleanbytecharclass
constdebuggerdoubleenumexport
extendsfinalfloatgotoimplements
importintinterfacelongnative
packageprivateprotectedpublicshort
staticsupersynchronizedthrowstransient
volatile

  

3.3变量

ECMAScript里变量属于松散类型,即可以保存任何类型的数据。

定义变量用var操作符

var meiyzeng
var meiyzeng=2014
第一行中未经初始化的变量系统会自动为其赋值一个undefined,初始化便是给变量赋值。

另外可以使用一条语句定义多个变量,只用中间用逗号隔开即可

3.4数据类型

typeof操作符,对于每一个值用typeof可能返回下列某个字符串:"undefined" "boolean" "string" "number" "object" "function";

typeof的操作数可以是变量,也可以是数值字面量;

    3.4.1undefined类型

     用var声明变量但未对其加以初始化,这个变量的值就是:undefined;(如上面定义)

     可以显式地把一个变量的值设置为undefined,一般没有必要;引入这个值是为了区别空对象指针与未初始化的变量;

    3.4.2Null类型

    Null类型也只有一个值就是null;从逻辑的角度来看,null值标识一个空对象指针,而这也正是使用typeof操作符检测null会返回"object"的原因;

    若定义的变量准备在将来用于保存对象,那么最好将变量初始化为null而不是其他值;这样一来,一检查null值就可知道变量是否已经保存了一个对象的引用;

    实际上undefined值是派生自null值的,ECMA-262规定对应他们的相等性测试返回true;

    3.4.3Boolean类型

    该类型只有两个字面量:true和false;Boolean类型的字面值区分大小写的;

    数据类型的转换规则如下表:

   

数据类型转换成true的取值转换成false的取值
Undefinedundefined
Booleantruefalse
Object非null时都为truenull
Number非0和NaN时都为true0和NaN

String

非空字符串""(空字符串)
     

       3.4.4Number类型

       八进制字面值的第一位必须是0(零);如果字面值中的数值有超过范围的,那么前导的0将被忽略,后面的数当作十进制来解析;

      十六进制字面值的前两位必须是0x;后面是(0~9及A~F),其中字母可大写也可小写;

      ECMAScript能够标识的最小数:5e-324;

      ECMAScript能够标识的最大数:1.796931348623157e+308;

      ( 用isFinite()函数来确定一个数是不是又穷的;)

var result=Number.MAX_VALUE+Number.MAX_VALUE;

alert(isFinite(result));                 //fase;

NaN (not a number)

       涉及到NaN的操作都会返回NaN;

       NaN与任何值都不相等,包括NaN本身;

       isNaN()函数会在收到一个值后,会将某些不是数值的值转化成数值,例如:字符串"10"或Boolean值;而任何不能被转换成数值的会使这个函数返回true;

       有3个函数可以把非数值转换成数值:Number();ParseInt();ParseFloat();

       其中Number();可以用于任何数据类型,另外两个函数专门用于把字符串转换成数值。

       在ECMAScript5 JavaScript引擎中,ParseInt()不具备有解析八进制数的能力;

      

      3.4.5 Stringr类型

      用于表示0个或多个16位Unicode字符组成的字符序列,即字符串;

      转义序列,用于表示非打印字符:如"\n"

      toString()方法能将其他类型转换成字符串

    

      3.4.6 Object类型

      ECMAScript中的对象就是一组数据和功能的集合,通过var o=new Object();创建新的对象;

3.6. 操作符

      3.6.1 一元操作符:++  --

      3.6.2 位操作符:按位非(~),按位与(&),安位或(|),按位异或(^),左移(<<), 有符号位的右移(>>),无符号位的右移(>>>) 

      3.6.3 布尔操作符:逻辑非(!),逻辑与(&&),逻辑或(||)

      3.6.4 乘性操作符:乘法,除法,求模(求余%)

  • 操作数为非数值的情况下会执行制动的类型转换;空字符串当做0,布尔值true将被当做1;

  • 对于乘法:有一个数是NaN,则结果就是NaN;

                      如果是Infinity和0相乘,结果是NaN;

                      如果有Infinity和非0数相乘,结果是Infinity或则是-Infinity;(符号取决于  有符号的操作数的符号;)

  • 对于除法:Infinity / Infinity 结果是NaN;

                     0/0 结果是NaN;

                      非0有限数被0除,结果是Infinity或是-Infinity;

  • 对于求模:

                     无穷大%有限大 结果是NaN;

                           有限大%0    结果是NaN;

                           Infinity%Infinity结果是NaN;

                          有限大%无穷大 结果是被除数(那个有限大的数);

       3.6.5 加性操作符:加法,减法;

  • 对于加法:Infinity+(-Infinity)=NaN;

  • 对于减法:Infinity-Infinity=NaN;

                           -Infinity-(-Infinity)=NaN;

                            Infinity-(-Infinity)=Infinity;

                           -Infinity-Infinity=--Infinity;

         3.6.6 关系操作符:小于(<),大于(>),小于等于(<=),大于等于(>=),

                           相等(==),不相等(!=),全等(===),不全等(!==);

  • 这几个操作符都返回一个布尔值;

  • 相等和不相等——先转换再比较;

  • 全等和不全等——仅比较不装换;

     3.6.7 条件操作符:

      例如:var max=(num1>num2)? num1 : num2 ;

      num1>num2(关系是返回true),则max=num1;否则max=num2;

    3.6.8 赋值操作符:

    3.6.9 逗号表达式:

      var num1=1, num2=2, num3=3;

      var num=(1,4,8,4,0);      //num的值为0;

3.7基本语句:

       3.7.1 if语句 用于条件判断

       3.7.2 do-while语句 

       3.7.3 while语句

       3.7.4 for语句  用于循环

       3.7.5 for-in语句

      for-in语句是一种精准的迭代语句,可以用来枚举对象属性;

     【语法】:for(property in expression) statement ;

     【示例】:使用for-in语句循环来显示BOM中window对象的所有属性:

       for (var propName in window){

              document.write(propName);

        } 

       3.7.6 label语句

       3.7.7 break和continue语句;

  • break语句会立刻退出循环,执行循环体后面的语句;

  • continue语句也会退出循环,但是执行下一次循环;

        3.7.8 with语句;

        3.7.9 switch语句;

3.8 函数

  • 可以向ECMAScript函数传递任意数量的参数,并可以通过arguments对象访问这些函数;

  • 由于不存在函数签名的特征,ECMAScript函数不能重载;


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值