第3章:基本概念(一)

3.1 语法

3.1.1 区分大小写

js中的一切都是区分大小写的,包括变量、函数、操作符。

3.1.2 标识符

概念:标识符就是变量、函数、属性的名字。

命名:第一个字符必须是字母、下划线(_)或者美元符号($);

    其他字符可以是字母、下划线、美元符号、数字。

    推荐用驼峰命名。

    命名不能用关键字、保留字、true、false、null。

3.1.3 注释

单行://

多行:

/*

* 多行注释内容

*/

3.1.4 严格模式

在函数上方加: "use strict";

function doSomething() {

    "use strict"
    //函数体

}

3.1.5 语句

用分号(;)结尾;代码块用 {}

 

3.2 关键字和保留字

关键字:ECMA规定具有一定用途的关键字,如:break、function、if....

保留字:以后可能用做关键字的

 

3.3 变量

用var定义变量;可以定义任何数据类型。如:var msg = "hello";

如果去掉var,msg = "hello"; 则这个是全局变量。不推荐这么定义全局变量。

 

3.4 数据类型

ECMAScript主要有6种数据类型:Undefinded、Null、Number、Boolean、String、Object;

3.4.1 typeof

使用typeof可以检测给定的变量是哪种数据类型。

3.4.2 Undefined类型

声明了变量,但是没有定义或者定义为undefinded;如:

var msg;
alert(msg == undefined);    //true

var msg2 = undefined;
alert(msg2 == undefined);   //true

    var msg3;
    alert(msg3);    //undefined
    alert(age); //error

    alert(typeof msg3); //undefined
    alert(typeof age);  //undefined
alert(age); 什么代码中,没有声明age的变量,所以会报错。但是typeof,都会返回undefined.

3.4.3 Null类型

null是一个空对象;

    var car = null;
    //alert(typeof car);  //object

    if (car != null) {
        alert("not null");
    } else {
        alert("null");
    }

3.4.4 Boolean 类型

有两个值:true和false;

Boolean()的方法可以把一个值转换成布尔值。

    var msg = "hello";
    alert(Boolean(msg));    //true

    var msg = "";
    alert(Boolean(msg));    //false

    //存在的自动Boolean自动 转换
    if (msg) {
        alert("this is true");
    } else {
        alert("this is false");
    }

3.4.5 Number类型

(1)浮点数值,值得一提的是,看代码

 var a = 0.1;
    var b = 0.2
    alert(a + b);   //0.30000000000000004 - 17位

(2)数值范围

.....

(3)NaN

    /*
    * NaN 非数值 (Not a Number)
    * 任何数涉及和NaN操作都会返回NaN
    * 任何数 / 0 都会返回NaN
    * NaN不等于任何值,包括自己。 如:NaN != NaN
    * */

    var num1 = 5 / 0;
    //alert(num1);  //false  高版本浏览器会返回 inf.....

    var num2 = 5 + NaN;
    //alert(num2);  //NaN

    alert(NaN == NaN); //false

isNaN()

针对NaN的两个特点,定义isNaN()函数。只接受一个参数,可以是任何类型。如果不是数字,则返回true。

    console.log(isNaN(NaN));  //true
    console.log(isNaN(true));    //false
    console.log(isNaN(6));   //false;
    console.log(isNaN("5"));    //false;
    console.log(isNaN("dfd"));    //false

    var num = 898;
    if (! isNaN(num)) {
        alert("这是个数字");
    } else {
        alert("不是数字");
    }

(4)数值转换

有3个函数可以实现数值转换:Number()、parseInt()、parseFloat(),Number()问题比较多,比较常用的是后两个。

Number():

    console.log(Number("abc")); //NaN;
    console.log(Number(true));  //1
    console.log(Number(false));  //0
    console.log(Number("0112"));  //112
    console.log(Number("20px"));  //NaN
    console.log(Number(""));  //0
    console.log(Number(null));  //0
    console.log(Number(1.2222));  //1.2222

parseInt():

    console.log(parseInt("abc")); //NaN;
    console.log(parseInt("   200px")); //200;
    console.log(parseInt(NaN)); //NaN;

parseFloat():

    console.log(parseFloat("abc")); //NaN;
    console.log(parseFloat("   200px")); //200;
    console.log(parseFloat(NaN)); //NaN;
    console.log(parseFloat("2222.2")); //2222.2;
    console.log(parseFloat("12.5.6")); //12.5;
    console.log(parseFloat("5.0")); //5;
    console.log(parseFloat("3.0.5")); //3;

 

 3.4.6 String类型

(1)字符串字面量,也叫转义序列

\n 换行

\t 制表

\b 空格

\r 回车

\\ 斜杠

\' 单引号

\" 双引号

(2) 字符串特点:一点创建,就不能变

(3) 转化为字符串

toString(),几乎每个值都有这个方法。null和undefined除外。

    var num = 10;
    console.log(num.toString()); //"10"

    var found = true;
    console.log(found.toString()); //"true"

String()

    //如果有toString()的方法,则调用。。
    var value1 = 10;
    var value2 = null;
    var value3;

    console.log(String(value1));    //"10"
    console.log(String(value2));    //"null"
    console.log(String(value3));    //"undefined"

 

+""

    //要把某个值转换成 字符串 , 也可以
    var num = 8 + "";
    console.log(num);   //"8"

 

3.4.7 Object类型

对象就是集合,包含数据和功能。可以通过new操作符后面跟对象类型名称来创建。并可以添加属性和方法。

var o = new Object();
var o = new Object;    //有效但不推荐。
var o = {};

对象都有下面的属性和方法:

ConStrictpr:保存当前对象的函数。

hasOwnProperty(propertyName)

.....

PS:这几个名字又臭又长,记不住,--!   用的时候查一下。。。

 

 

 

 

posted @ 2013-12-28 23:13  赵小磊  阅读(172)  评论(0)    收藏  举报
回到头部