• js基础知识:表达式


    一、什么是表达式?

    我理解的“表达式”:程序执行到1个“表达式”时,会返回1个值到这个“表达式”所在的位置。

    var a = 10 , b = 20;  // 这是初始化变量
    
    console.log(a+b); // 计算变量a、b的值(标识符解析),然后返回两者的值到其所在位置。那么就相当于console.log(10+20)

    二、常见的几种表达式

    (一)原始表达式


    1.直接量(字面量)

    123 // 数字
    'hola' // 字符串

    2.JavaScript的保留字


    “保留字”就是在程序中有特殊意义的标识符,程序员不能使用它们作为变量了。

    true; // 布尔值
    this; // 函数的调用上下文


    3.变量

    var a = 10; alert(a); // 计算变量a的值,返回1个10,然后将10传入alert函数。


    (二)数组表达式、对象表达式



    数组表达式就是1个新创建的数组。

    [1,2,3,4]; // 创建1个数组。


    和数组表达式一样,对象表达式就是新建1个对象。

    {x:1, y:2}; // 创建1个对象


    (三)函数表达式

    创建1个函数,可以采用函数声明的方式,也可以采用函数表达式的方式。函数表达式就是创建1个函数,将它的引用保存在1个变量中。

    var foo = function(a){ return '传进来的实参是:' + a; }; // 创建1个匿名的函数,它的引用保存在变量foo中。


    (四)属性访问表达式

    属性访问表达式有2种语法:

    1.“表达式.标示符”: “表达式”需要是1个对象,而“标示符”必须是对象已经存在的属性

    var obj = {x:1, y:2}; console.log(obj.x); // obj.x返回obj对象中的x属性,1。

    2.“表达式[表达式]”:第1个“表达式”同样需要是1个对象,而第2个“表达式”的值可以为:

    (1)字符串:那么这就是对象的属性访问or属性设置。

    对象的属性访问:

    var obj = {x:1, y:2};  console.log(obj['x']); // 访问obj对象中x属性的值,返回1。

    对象的属性设置(给1个属性赋值):

    var obj = {x:1, y:2}; obj['z'] = 3; console.log(obj); // { x=1,  y=2,  z=3}


    (2)数字:数组元素访问。

    var arr = [1,2,3,4]; console.log(arr[0]); // 访问数组中索引为0的元素,返回1。

    (五)函数调用表达式

    函数调用表达式就是这样的:“函数名(实参)”。函数调用表达式的返回值,取决于return语句。

    1没写return语句:函数调用返回undefined。

        function add(x){
                x+x; 
        }
        console.log( add(1) ); // 函数没有return语句,函数调用返回undefined。


    2.写了return语句,但没写返回值:函数调用返回undefined。

        function add(x){
                x+x; 
                return;
        }
        console.log( add(1) ); // 写了return语句但没有返回值,函数调用返回undefined。


    3.写了return语句和要返回的表达式:返回表达式的值。

        function add(x){
            return x+x; 
        }
        console.log( add(1) ); // 写了return语句,指定了返回值(x+x),所以函数调用返回2。

    参考资料:

    《JavaScript权威指南》(第6版) 4.1-4.6

  • 相关阅读:
    msp430入门学习21--TA
    msp430入门学习20
    msp430入门学习17
    msp430入门学习16
    msp430入门学习15--时钟
    msp430入门学习14
    msp430入门学习13
    msp430入门学习12
    msp430入门学习11
    msp430入门学习10
  • 原文地址:https://www.cnblogs.com/ghettoboy/p/6123820.html
Copyright © 2020-2023  润新知