JavaScript中的表达式

目录

一些简单的表达式:

数组初始化表达式:

 对象初始化表达式:

成员访问表达式,属性访问表达式:

调用表达式:取值并调用合起来就是调用表达式

算术表达式:·


一些简单的表达式:

//基本数据的直接量,也是一种表达式
100;
200;
"hello";
;  //就这样也是一个表达式

//声明表达式
var a;
function fn(){}

//变量表达式:
a;
//函数表达式:
fn;

表达式与表达式组合,就变成了语句

var a = 20; //var a是一个声明表达式,20是一个基本数据表达式,=是一个赋值表达式
            //组合起来 var a = 20;就是一个语句

语句和语句配合,就变成了程序。

基本数据是不可以分割的,因为每一个数据,系统已经提前设定好了。

数组初始化表达式:

var arr = [10,20,54]; //数组直接量
var arr2 = new Array(); //数组语法糖写法 等价于 []
var arr3 = new Array(3); //代表数组arr3的length属性值 =3
var arr4 = new Array(3,4,5,6); //代表数组arr4为[3,4,5,6]

 分析:var arr3 = new Array(3); 其中的3是什么意思?代表arr3的length属性值为3,但是arr3数组中一个元素没有,只是length属性为3

var arr3 = new Array(3); //[,,,]
console.log(arr3.length); //3
var arr4 = new Array(3,4,5,6); 
console.log(arr4); //(4) [3, 4, 5, 6]

 对象初始化表达式:

var obj = {name:"karen"}; //对象直接量
var obj2 = new Object();  //创建一个对象 对象创建的语法糖写法 等价于{}
obj2.name = "jack";       //给obj2对象添加一个属性name,其所存值为jack
console.log(obj,obj2);

成员访问表达式,属性访问表达式:

引用数据通过["key"]的形式访问成员(属性)或者通过点语法 

var a = {name:'yourname', age:22};
var b = {
      p1:{name:'华子', age:22},
      p2:{name:'华耀', age:25},
      p3:{name:'华赓', age:24}
};
var c = [1,2,3,4,'a','b','c'];
var d = [['a','b','c'],['d','e','f'],['g','h']];
console.log(a.age);             //22
console.log(b.p2['name']); 		//对象用中括号访问时,注意加引号!  华耀
console.log(c[4]);              //a
console.log(d[2][1]);           //h

调用表达式:取值并调用合起来就是调用表达式

调用表达式fn() 是执行函数或方法的语法表示;

  1. 如果调用的函数或方法有返回值,则表达式的值就是该返回值;

  2. 如果调用的函数或方法没有返回值,则表达式的值是undefined;

  3. 简单理解就是函数或方法名称后面跟上小括号代表执行;

function fn1(){
    return 0; //fn1有函数返回值
}
var a1 = fn1(); 
console.log(a1); //0
function fn2(){
    //fn2没有函数返回值
}
var a2 = fn2();
console.log(a2); //undefined

取值得到了一个函数,然后加小括号就可以调用函数。

取值:

变量可以取值,数组可以取值,只要能得到值的表达式,都是取值 

var arr = [100,function(){console.log(123)},200];
arr[1]();

结果分析:arr[1]取值,得到一个函数,再加(),运行此函数arr[1]()  最终结果就是打印123 

其它一些取值:

eg:obj.xx();   表示什么意思? 对象调方法

obj.xx得到一个函数,然后加小括号可以调用函数

var obj = {
    xx:function(){
        console.log(123);
    }
}
obj.xx();  //对象调方法   obj.xx取到对象的函数(方法),然后再加小括号运行

匿名函数自调用

(function(){})();  //取匿名函数的返回值,返回值是一个函数,再加()调用运行

后面会深入学习匿名函数自调用,这里只是知道就好。 

算术表达式:

+  ,- ,  *  ,  /   ,%

//一些特殊的情况
var a = true;
var b = false;
console.log(a+b);

结果分析:结果为1,因为true转化为1,false转换为0,1+0=1 

var a = [];
var b = 10;
console.log(a+b);  //"10"

var a1 = [10];
var b1 = 10;
console.log(a+b);  //"1010"
console.log(a+b+20); //"101020"

结果分析:数组在运算过程中,会转为字符串,[ ]-->" " ,[10]-->"10"

                  而 + 会把除字符串类型的其它数据类型转为字符串类型

                   所以:"" + 10  先把10转为字符串"10",再进行字符串的拼接 就是""+"10"="10" 

                  所以:"10"+"10"+"20",再进行字符串的拼接  结果就是:"101020"

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值