2017/5 JavaScript基础4--- 表达式、运算符

表达式是指可以计算出值得任何可用程序单元。javascript

1、表达式

一、原始表达式

  1. 常量、直接量 :3.14  、‘aaa’
  2. 关键字  : null this true
  3. 变量 : i,j,k

二、数组、对象的初始化表达式

  1. [1,2] < ====== >new Array(1,2);
  2. [1,,,4]<======>[1, undefined ,undefined , 4 ]
  3. { x : 1 ,y : 2}< ============> var o = new Object(); o.x = 1 ; o.y = 2;

三、函数表达式

函数赋值给变量  : var fe = function(){ }java

(function(){ console.log(' hello world) ;})数组

四、属性访问表达式

利用 点 " . "访问对象属性 ,或者使用中括号 [ ]浏览器

var    o = { x : 1};函数

o.x     o[ ' x ' ];this

五、调用表达式

函数名 +()spa

六、对象建立表达式

new Func ( 1,2 ); 用new 建立一个含参表达式prototype

new Object;  不含参数。code

2、运算符

一、按操做数分

  • 一元运算符  +num ,字符串拼接、取负
  • 二元运算符  a+b
  • 三元运算符 c ? a: b

二、按功能分

  • 赋值运算符 : x + =1 
  • 比较 :a == b   ===
  • 算数  : a - b  + - * /
  • 位 : a | b
  • 逻辑 : exp1  && exp2
  • 字符串 : "a " + "b"  字符串拼接
  • 特殊  : delete obj.x

三、特殊运算符详细

1) c ? a : b 

首先会判断 c ,c 转化为布尔值后为true ,则返回 a ,不然返回 b对象

var val  = true ? 1 : 2 ; // val  =1

2)逗号运算符 a,b

逗号表达式会从左到右,依次计算表达式的值,最终去最右边的值

var val = ( 1,2,3 ) ; //val =3

3) 运算符delete

delete obj.x

  • var obj = { x :1 };
  • obj.x;   // 1
  • delete obj.x  ;  //删除 x属性
  • obj.x ;  // undefined

configurable

configurable 为true 才能够删除对象属性

var obj = {};

Object.defineProperty( obj ,"x" , {
configurable :false
value:1
})
delete obj.x ; //false

obj.x ; // 1

4) 运算符 in

判断对象中是否有 key

window.x = 1;  //建立全局变量x
'x' in window ;//true

5) 运算符 instanceof ,typeof

{} instanceof Object  // true
typeof 100 === 'number'  //true

6) 运算符 new

//建立一个空函数
function Foo(){};

Foo.prototype.x =1;

var obj = new Foo() ;  //建立一个新的对象 obj
obj.x ; //1 从构造器的prototype中拿到
obj.hasOwnProperty('x') ;//false 能够判断属性是对象上的,仍是原型链上

obj._proto_.hasOwnProperty('x') ;//true  _proto_拿到对象原型,x为对象原型的属性

7) 运算符this

this ; // 在全局做用域下 this指向window (浏览器)

var obj = {
    func :function (){
        return this;  //指向对象
    }
}

obj .func(); //obj

8) void

void 0  ;//undefined
void(0) ;//undefined
不管void后为何值都会返回 undefined
相关文章
相关标签/搜索