JS学习笔记(二)

基本概念

注释

ECMAScript使用C风格的注释,包括单行注释和块级注释。

  //单行注释

  /*这是

  *一个

  *块级

  注释*/

(上述第二行和第三行都以一个星号开头,但这并不是必需的。添加这两个星号是为了提高可读性。

语句

在控制语句中使用代码块可以让编程意图更清晰,并且能够降低修改代码时出错的几率。

例如:

1.     if(test)

        alert(test);    //有效但容易出错

2.     if(test){         //推荐使用

        alert(test);

        }

变量

定义变量时使用var操作符,后跟变量名。

如:

var message;

该变量可以用来保存任何值。

ECMAScript也支持直接初始化变量。

如:var message="Hello World!";

用var操作符定义的变量将成为定义该变量的作用域中的局部变量。若在函数中使用var定义变量,那么这个变量在函数退出后就会被销毁。也可以省略var操作符,从而创建一个全局变量:

function test(){

message="Hello World!";    //全局变量

}

这个例子中省略了var操作符,因而message成了全局变量。但这并不是推荐的做法。

数据类型

ECMA Script中有5种简单数据类型(或基本数据类型):Undefined、Null、Boolean、Number和String。还有一种复杂数据类型--object。

typeof操作符--检测给定变量的数据类型

var message="some string";

alert(typeof message);      //"String"

alert(typeof 95);                //"Number"

调用typeof null会返回"object",因为特殊值null被认为是一个空的对象引用。

 

Undefined类型

未经初始化的值默认取得undefined值。

对于尚未声明过的变量,只能执行一项操作,即使用typeof操作符检测其数据类型。

即便未经初始化的变量会被赋予undefined值,但显式的初始化变量依然是明智的选择。如果能够做到这一点,那么当typeof返回"undefined"值时,我们能够知道被检测的变量是尚未被声明而非尚未初始化。

Null类型

从逻辑角度来看,null值表示一个空对象指针,这也是typeof操作符检测null值时会返回"object"的原因。

另外,undefined是派生自null值的,因此

alert(null==undefined);  //true

尽管它们有着这样的关系,但它们的用途完全不同。只要意在保存对象的变量还没有真正保存对象,就应该明确的让该变量保存null值。这样做不仅可以体现null作为空对象指针的惯例,而且有助于进一步区分null和undefined。

Boolean类型

Boolean类型的字面值true和false是区分大小写的。

要将一个值转换为其对应的Boolean值可以调用转型函数Boolean()。

各种数据类型及其对应的转换规则:

数据类型转换为true的值转换为false的值
Booleantruefalse
String任何非空字符串空字符串
Number任何非0数字值(包括无穷大)0和NaN
Object任何对象null
Undefinednot applicationundefined

这些转换规则对理解流控制语句(如if语句)自动执行相应的Boolean转换非常重要,如:

var message="Hello World";

if(message){

alert("Value is true");

}

运行这个示例就会显示一个警示框,因为字符串被自动转化成了对应的Boolean值(true)。

Number类型

十进制可以直接输入;八进制字面值的第一位必须是0,然后是八进制序列;十六进制字面值的前两位必须是0x,后跟十六进制数字。

1.浮点数值

  所谓浮点数值,就是该数值中必须包含一个小数点,并且小数点后面必须包含至少一位数字。

  对于那些极大或极小的数值,可以用e表示法(科学计数法)表示的浮点数值表示。

var floatNum=3.125e7;       //等于31250000

2.数值范围

[5e-324,1.797693134e+308]

要确定一个数值是不是有穷的,可以使用isFinite()函数。

3.NaN

任何数值除以非数值会返回NaN,因此不会影响其他代码的执行。

NaN与任何值都不相等,包括NaN。

4.数值转换

有3个函数可以把非数值转换为数值:Number(),parseInt() 和parseFloat()。

 Number()函数的转换规则        

   若为Boolean值,true转换成1,false转换成0;

   若为数字,简单的传入传出;

   若为null值,返回0;

   若为字符串,则:

          若只包含数字,则忽略前导0将其转换成十进制数字;

          若包含有效的浮点格式,则忽略前导0将其转换成相应的浮点数值;

          若包含有效的十六进制格式,则转换成对应的十进制数字;

          若字符串是空的,则转换成0;

          若字符串包含上述格式外的字符,则转换成NaN;

    若为对象,则调用对象的valueOf()方法,按照上述规则转换成返回的值。若结果为NaN,则调用对象的toString()方法,在按照前面的方法转换。

parseInt() 函数的转换规则(处理整数时更常用)

该函数会忽略字符串前面的空格,直至找到第一个非空格字符,如果第一个字符不是数字字符或负号,则返回NaN。若解析的第一个字符是数字字符则继续解析,直至解析完所有后续字符或遇到一个非数字字符。(小数点不是有效字符)

该函数能识别出各种整数格式,但为了消除该函数可能导致的困惑,建议为该函数提供第二个参数:转换时使用的基数(即多少进制)

如:

var num=parseInt("0xAF",16);      //175

var num1=parseInt("AF",16);        //175

var num2=parseInt("AF");            //NaN

建议无论在什么情况下都指定基数。

parseFloat() 函数的转换规则(处理小数时更常用)

该函数与parseInt()函数类似,从第一个字符开始解析。字符串中的第一个小数点是有效的,而第二个就是无效的了,因此它后面的字符串将被忽略。但该函数只解析十进制值,因此不需要指定基数。

String类型

字符串可以由双引号或单引号表示。

1.字符字面量

String数据类型包含一些特殊的字符字面量,也叫转义序列,用于表示非打印字符,或者具有其他用途的字符。

字面量含义
\n换行

\t

制表
\b退格
\r回车
\f进纸

\\

斜杠
\'单引号,在用单引号表示的字符串中使用
\"双引号,在用双引号表示的字符串中使用
\xnn以十六进制代码nn表示的一个字符(其中n为0~F)
\unnnn以十六进制代码nnnn表示的一个Unicode字符,n同上

 

2.字符串的特点

字符串创建之后,它们的值不再能改变

3.转换成字符串

第一种方式:使用几乎每个值都有的toString()方法(null和undefined没有这个方法)

第二种方式:使用转型函数String()。

String()函数遵循下列规则:

  若值有toString()方法,则调用该方法并返回相应结果;

  若值为null,则返回"null";

  若值为undefined,则返回"undefined"。

Object类型

var o=new Object();      //不推荐省略圆括号

Object的每个实例都有下列属性和方法:

1.constructor:保存着用于创建当前对象的函数

2.hasOwnProperty:用于检查给定的属性在当前对象实例中是否存在

3.isPropertypeOf:用于检查传入的对象是否是当前对象的原型

4.propertyIsEnumerable:用于检查给定的属性是否能够使用for-in语句

5.toLocaleString():返回对象的字符串表示

6.toString():返回对象的字符串表示

7.valueOf():返回对象的字符串、数值或布尔值表示。通常与toString()的返回值相同

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值