2468工作室_成都网站开发_网页设计_二次开发_推广服务_二四六八工作室 我们一直坚信只有用心去做才能得到好的作品!
您当前的位置:主页 > 知识分享 >
快乐前端:JavaScript 学习知识点总结(六)
作者: 2468工作室 发布日期:2020-07-09 15:18 查看次数:

1、表达式:表达式由一个或多个运算符、操作数组成的运算式。表达式的功能是执行计算,并返回一个值。
 
2、表达式的形式:表达式是一个比较富有弹性的运算单元。简单的表达式就是一个直接量、常量或变量。
例如:
1  //数值直接量,计算后返回数值 1
"string"  //字符串直接量,计算后返回字符串“string”
false  //布尔直接量,计算后返回布尔值false
/regexp/  //正则直接量,计算后返回正则表达式对象
{a : 1,b : "1"}  //对象直接量,计算后返回对象
[1,"1"]  //数组直接量,计算后返回数组
function(a,b){return a+b}  //函数直接量,计算后返回函数
 
3、表达式的类型根据功能的不同,表达式可以分为很多类型。
例如:
var a = [];  //定义表达式,定义变量
var f = function(){};  //定义表达式,定义函数
var o = {x :1,y : 2};  //初始化表达式
document.write(({x : 1,y : 2}).x );  //访问表达式,返回1
document.write(function(){return 1;}());  //调用表达式,返回1
document.write(new Object());  //实例化对象表达式,返回实例对象
 
4、表达式的运算顺序:表达是严格遵循“从左到右”的顺序执行运算,但是也会受到每个运算符的优先级和结合性的影响。同时,为了控制计算,用户可以通过小括号分组提升子表达式的优先级。
例如:
(a + b > c && a -b < c || a > b > c)
等价于:
((a + b > c) && ((a - b < c) || (a >b >c)))

5、表达式的优化表达式的优化包括两种方法:运算顺序分组优化、逻辑运算结构优化。
例如:
var a = {};
a.e = function(x) { return x; };
a.f = function(x) { return x + ""; };
a.b = new Object(a.d ? a.e(1) : a.f(1));
使用 if 语句优化:
if(a.d){
    a.b = new Object(a.e(1));  
}else{
    a.b = new Object(a.f(0));
 
6、new运算符new 是一个运算符,可以创建对象,初始化实例。其语法格式:new contructor(arguments)。
例如:
var a = new Array;  //创建数组,省略小括号
var b = new Array();  //创建数组
var c = new Array(1,2,3);  //创建数组,并初始化元素值
document.write(c[2]);  //读取创建数组对象的元素值,返回3
 
var f = function(){  //自定义类型函数f
    this.x = 1;  //属性x
    this.y = 2;  //属性y
};
var h = new f;  //创建对象
document.write(h.x);  //调用对象属性x,返回1
 
7、括号和点号:使用中括号运算符[]可以存取数组元素值,使用点运算符.可以存取对象属性值。
a.b  点运算符的用法:操作数 a 表示对象,操作数 b 表示属性名。如果属性值是函数,应增加小括号,实现方法调用操作。
c[b]  中括号运算符的用法:操作数 c 可以是数组,也可以是对象。如果左侧操作数是数组,中括号包含的操作数应是一个值为非负整数的表达式,作为下标值,用来指定元素在数组中的位置;如果左侧操作数是对象,则中括号包含的操作数应是一个值为字符串的表达式,映射对象的属性名。
例如:
var a = {x : 1};  //定义对象a
var b = "x";
document.write(a.x);  //返回1。读取对象属性a的值
document.write(a["x"]); //返回1。读取对象属性a的值
document.write(a.b); //返回undefined。点运算符无法识别变量引用
document.write(a[b]); //返回1。读取对象属性a的值
var s = [1,"w",true,{}];  //定义数组s
document.write(a[1]);  //读取第二个元素的值,返回字符串"w"
var a = {  //定义对象a
    x : 1,  //定义对象属性x
    y : function() {  //定义对象方法y
        return 2;  //返回值
        }
};
document.write(a["y"]);  //返回字符串“function() { //定义对象方法y return 2; //返回值 }”
document.write(a["y"]());  //调用方法y,返回2
 
8、连续运算JavaScript 是函数式编程语言,表达式运算的能力比较强大,通过连续运算可以设计敏捷的程序代码。
例如:
document.write(
    (function() {
        return function(x,y) {
            return function() {
                return (x+y) /2;
            }
        }
    }) () (10,20) ()  //连续3次运算
);  //返回值15
 
var a = 100;
var b = typeof a;  //返回变量a的类型为number
var c = (b == "string") ? "String" : (b == "number") ? "Number" : (b == "boolean") ? "Boolean" : Object ;  //连续运算匹配b的值,返回数据类型并赋值给变量c
document.write(c); 
 
9、命令式语句转换为表达式把命令转换为表达式,循环和分支中的一些字句可以弃用,如 break、continue,以及标签语句等。变量声明语句不需要了,只需要值声明和函数内的 return 子句,其他命令都可以省略。
例如:
for(var i = 1;i < 100;i++){
document.write(i);
document.write(" ");
}
利用递归函数,嵌套函数进行封装:
(function () {
var i = 1;
return function (){
document.write(i);
document.write(" ");
(++i < 100) && arguments.callee();
}
})() ()
 
10、JS语句JavaScript 语言定义了 20 套(或个)语句命令,分别执行不同的操作。以用途划分,JavaScript 语句可以分为:声明、分支控制、循环控制、流程控制异常处理和其他。以结构划分,JavaScript 语句又可以分为单句和复句。单句:也称单行语句,由一个或多个关键字和表达式构成,用来完成简单的运算。复句:使用大括号包含一个或多个单句,用来设计代码块、控制流程等复杂操作。
 
11、定义语句在 JavaScript 中,使用分号可以定义一条语句。只有当省略分号,JavaScript 无法合并上下行进行解析时,才会补加分号。( return、break 和 continue 三个语句,如果分行显示,JavaScript 不会自动合并下一行进行解析。)
例如:
var a;
var b   //无法与下一句进行合并,JS执行时会补加分号
b = 100
var c = d = 1;
c   //结果为1,++、--不会与上一行进行合并
++
d   //结果为2,++、--要与下一行进行合并
 
12、单句单句比较简单,一般占据一行,可以不执行任何任务,或者运算表达式,或者执行简短的命令等。单句主要包括:空语句、表达式语句、声明语句、调试语句、启用严格模式语句。
 
13、复句多个子句(Statement)放在一起就是一个语句段(Statement Block),如果使用大括号括起来,就成了复句(Statements)。单个句子被包括在大括号中也是复句。复句又称语句块,语句块是一个独立运行的单元。在没有流程控制的情况下,块内语句要么都执行,要么都不执行。复句不需要使用分号与后面代码进行分隔,不过添加分号也不会出错。
例如:
{
    //空复句
}
{
    console.log("单复句);
}
{
    console.log("外层复句");
    {
        console.log("内层复句");
    }
}

14、空语句空语句就是没有任何可执行的代码,是有一个分号;。空语句没有任何副作用,也不会执行任何操作,相当于一个占位符。
例如:
for(var i = 0;i < 10;i++){ }  //大括号内没有写入分号,但是 JavaScript 能够自动添加分号,定义一个空语句。
 
15、表达式语句:任何表达式加上分号就是表达式语句。
例如:
true;  //表达式语句
o = new ((o == "String") ? String : (o == "Array") ? Array : (o ==
"Number") ? Number : (o == "Math") ? Math : (o == "Date") ? Date : (o == "Boolean") ? Boolean : (o == "RegExp") ? RegExp : Object); //也是表达式语句
 
16、声明语句声明语句包括三种:声明变量、声明函数和生命标签。使用 var 语句可以声明变量,使用 function 语句声明函数。
例如:
var a = 0,b = true,c,d;  //声明四个变量,并部分赋值
function f() { document.write("你好");}  //声明函数
 
17、调试语句:debugger 语句用于停止执行 JavaScript(但不会关闭任何文件或清除任何变量,类似于在代码中设置断点。),同时如果调试函数可用,会调用调试函数。
例如:
for(i = 1;i < 5;i++){
    document.write("循环次数" + i);
    debugger;
}
 
18、with语句:with 语句能够临时改变作用域。语法格式如下:
with (object)  //object 表示一个对象
    statement
例如:
document.getElementByTagName("input") [0].value = 0;
document.getElementByTagName("input") [1].value = 1;
document.getElementByTagName("input") [2].value = 2;
可以转变为:
with(o = document.getElementByTagName("input"){
    o[0].value = 0;
    o[1].value = 1;
    o[2].value = 3;
}