js第三章总结

一、语法

1.ECMAScript中一切(变量名、函数名、操作符都区分大小写)
2.标识符:

  • 第一个字符必须是 字母 或 _ 或 $
  • 其他字符可以是字母、下划线、美元符号、数字

3.注释:
// 单行注释
/* 多行注释 */
4.语句后最好加上分号
5.语句块用 { } ,单条语句最好也用 { }

二、关键字和保留字

1.关键字和保留字最好不要作为标识符和属性名。

三、变量

1.ECMAscript的变量类型是松散类型,它可以保存任意类型的数据;它保存的数据也可以进行二次更变即使保存的数据类型发生了改变(但我们并不推荐改变保存数据的数据类型)
2.定义变量用 var 变量名 = 数据;
注:

  • 如果不对变量名进行初始化,变量会保存undefined;
  • 如果使用var定义变量,定义的是局部变量;如果省略var,则定义了一个全局变量。(不推荐定义全局变量,严格模式会有错误)。如果在函数中定义了一个全局变量,需要在调用了一次该函数后,该全局变量才会有定义。
  • 同时定义多个变量:
var messsage = "hi",
	found = false,	/*逗号分离*/
	age = 29;	/*分号结束*/
  • 严格模式下不能将变量名命名为eval、arguments.
四、数据类型

1.typeof操作符(查看变量的数据类型)
(1)书写格式: typeof 变量名/要检测的数据;

  • typeof是操作符不是函数,因此变量名左右不需要带圆括号。
  • 当变量名未进行定义或初始化时使用typeof操作符都显示undefined;
    2.undefined类型
    (1) 值:undefined
    注:
  • 可以在定义变量时将其初始化为undefined。
  • 对于未声明的变量只能使用typeof操作符,其他操作都会有错。
    3.Null类型
    (1)值:null (表示一个空对象指针)
    在使用typeof操作符会返回object。
    注:
  • 如果定义的变量想在将来用来保存对象,最好在定义该变量的时候初始化为null,这样有利于后续操作。
if(car!=null){
...
}
  • 由于undefined派生于null,因此在测试undefined与null是否相等时,要返回true
alert(null == undefined); /*true*/

4.Boolean类型
(1)值:true、false
true和false与数值不同,因此true不一定等于1,false不一定等于0,。
(2)转型函数: Boolean(变量名);
使用该函数任何数据都会转化为true、false。
(3)对于理解控制流语句(如if语句)会自动执行Boolean转换

var message = "hi";
if(message){
	alert("value is true");  
}
/*value is true*/

5.Number类型
(1)表示整数数值和浮点数值

  • 整数数值:
    十进制: var num = 23;
    八进制: var num = 070; //第一位必须为0,如果数字超过范围会当做十进制处理
    十六进制: var num = 0xAf; //前两位必须是0x,后面的字母大小写都可以
  • 浮点数值:
    数值中必须有小数点,小数点后必须有一位数字,小数点前可以没有数字(但不推荐);
    对于极大或极小的值,可以用e表示法表示数值
    (2)数值范围
    正无穷:Infinity
    负无穷:-Infinity
    最大值:Number.MAX_VALUE
    最小值:Number.MIN_VALUE
  • 判断一个数值是不是位于最大值和最小值之间:
    isFinite(变量名),如果在最大值最小值之间,返回true。
    (3)NAN (非数值Not a Number)
    任何数值除以非数值会返回NAN
  • 任何涉及NAN的操作都会返回NAN
  • NAN与任何数值都不相等,包括NAN本身
  • 判断一个数据是不是数值:isNAN(数据);
    如果该数据可以转化为数值,返回false
    如果不能转化为数值,返回true
    (4)数值转换(把非数值转化为数值)
    Number()、parseInt()、parseFloat()
    6.String类型
    (1)字符串可用双引号(")或单引号(’)表示。
    字符串的长度可通过length属性获得:变量名.length;
    (2)特点
  • 字符串不可变,只能先销毁原来的字符串、再用另一个新的字符串填充该变量。
var lang = "JAVA";
lang = lang + "Script";

(3)其他数据转化为字符串
toString()、String()
7.Object类型

var o = new Object();/*可以省略圆括号,但不推荐*/
五、操作符

1.一元操作符
(1)递增递减操作符
a++ 、 a-- 、 ++a 、 --a
这四个操作符对字符串、布尔值、浮点数值和对象都有作用。
(2)一元加和减操作符

  • 一元加操作符:s1= +s2; //会将s2转换为数值、赋值给s1
  • 一元检测操作符:s1= -s2; //会将s2转换为数值、再添一个负号.
    2.位操作符
    (1)非(NOT)
    用 ~ 表示
    (2)与(AND)
    用 & 表示
    (3)或(OR)
    用 | 表示
    (4)异或(XOR)
    用 ^ 表示,只在真值表为1 0、0 1时返回 1
    (5)左移
    用 << 表示
    (6)有符号右移
    用 >> 表示
    (7)无符号右移
    用 >>> 表示
    3.布尔操作符
    (1)逻辑非 ( ! )
    (2)逻辑与 (&&)
    (3)逻辑或 ( || )
    4.乘性操作符
    操作符在非数值的情况下会自动执行类型转换
    (1)乘法(*)
    (2)除法 (/)
    (3)求模(%)
    5.加性操作符
    (1)加法(2)减法
    6.关系操作符
    (1)小于< (2)大于> (3)大于等于>= (4)小于等于<=
    7.相等操作符
    (1)相等(= =)和不相等(!=)
    先进行转化,转化后再看等不等于
    (2)全等和不全等
    全等 (= = =)
    两个操作数未经转换直接比较,相等返回true,否则返回false.
    8.条件操作符
    s1 = (num1>num2)?num1:num2;
    9.赋值操作符
    var s1 = 22;
    10.逗号操作符
    逗号操作符总返回表达式的最后一项。
    var num = (5,1,4,8,0); //num值为0.
六、语句

1.if语句
2.do-whie语句
3.while语句
4.for语句
5.break、continue语句
6.switch语句
switch比较时用的是全等操作符,不会自动进行类型转换。
(上面六个和c语言一样)

7.for-in语句
for-in语句是一种精准的迭代语句,可以用来枚举对象。
当迭代的对象变量是null或undefined时,会停止循环循环体。因此为保证兼容性,在使用for-in语句之前要保证该对象的值不是null或undefined.

for (var propName in window) {	/*var保证使用了局部变量*/
             document.write(propName);
             document.write("<br />");
        }

8.label语句
标签名:statement
label语句通常与for语句配合使用。

var num = 0;
        outermost:
        for (var i=0; i < 10; i++) {
             for (var j=0; j < 10; j++) {
                if (i == 5 && j == 5) {
                    break outermost;	//直接退出最外层循环
                }
                num++;
            }
        }
        alert(num);    //55
var num = 0;
        outermost:
        for (var i=0; i < 10; i++) {
             for (var j=0; j < 10; j++) {
                if (i == 5 && j == 5) {
                    continue outermost;
                }
                num++;
            }
        }
        alert(num);    //95

9、with语句
将代码的作用于设置到一个特定的对象中。严格模式下不允许使用with语句。

七、函数

函数使用function来声明。
注:

  • return可以不带返回值,即 return;这种情况函数会在停止循环后返回undefined。一般用于需要提前停止函数又不需要有返回值的情况。(推荐让函数始终都有返回值)
    1.即便定义函数是只让接受两个参数,但你也可以接受一个、三个甚至更多。
<script type="text/javascript">
        function aa(a,b){
        	alert(a);				//输出1
        	alert(arguments[2]);	//输出3
        }
        aa(1,2,3);	
    </script>
  • 可以用length属性获得有多少个参数传递给了函数
function howManyArgs() {
            alert(arguments.length);
        }
        
        howManyArgs("string", 45);    //2
        howManyArgs();                //0
        howManyArgs(12);              //1
  • 没有传地址的命名参数自动被赋予undefined.
  • arguments的值与命名参数保持一致,不论改变哪个,另一个都随之改变,但在严格模式下,对arguments赋值,命名参数不改变
    2.没有重载
    如果定义了两个同名的函数、那么这个名字只属于后定义的函数
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值