JavaScript数据类型/表达式/运算符

数据类型:原始类型( number,string,boolean,null,undefined ),
     对象类型,(函数(function)和数组(array) 和时间(date)等都属于对象类型
隐式转换:37"-7结果为30,减号理解为减法运算
     “37”+7结果为“377”,加号理解为字符串拼接
巧用 +/- 规则转换类型:
     1. num - 0 -> 数字;
     2. num + '' -> 字符串;

=    表示赋值;

==  表示比较,但是会做隐式类型转换。比如, "1 == true", 此时,1会从一个Number数 据类型转换到Boolean数据类型,进而再做比较;

=== 表示比较,不会去做数据类型的转换,因而相对于“==”也更严格一些。

 

包装对象:

var a='string';

alert(a.length)// 结果是6;

a.t=5;

alert(a.t)//结果为undefined 

当基本数据类型执行对象类型才有的属性和方法时,js会临时创建一个对象,内容和基本类型一样,执行完毕后就会销毁点这个对象。

 

JavaScript类型检测:

  typeof, instanceof, object.prototype.toString ,constructor, duck type

用处:

  1. 保证代码的健壮性,js是弱类型语言,类型检测可以避免出现不必要的类型转换问题。

  2. 有助于更高质量的完成代码书写。

  3. 有助于功能逻辑的把控。

类型检测小结
1.typeof适合基本类型及function检测,遇到null会失效 2.[[Class]]是通过{}.toString拿到,适合内置对象和基本类型,遇到null和undefined会失效 ie 6 7 8 会返回[object object] 3.instanceof 适合自定义对象,也可以用来检测原生对象,在不同iframe和window间检测时失效

JavaScript表达式

1. 原始表达式     //常量、直接量、关键字、变量 3.14、"test"、null、i、k、j
2. 初始化表达式    //[1,2]、{x:1, y:2}
3. 函数表达式     //var fe = function(){}、(function(){})()
4. 属性访问表达式   //var o = {x:1}、o.x、o['x']
5. 调用表达式     //func()
6. 对象创建表达式   //new Func(1,2)、new Object
运算符:
1. 
 var val = (1, 2, 3);    // val =3;   "," 运算符,值为最右边的
 var obj = { x:1 };
 obj.x;     // 1
 delete obj.x;     // 删除 obj 的 x 属性
 obj.x;     // undefined
2.
 var obj = {};
 Ojbect.definProperty(obj,'x',{
     configurable: false,    // 要为 true 才可以 delete
     value: 1
 });
 delete obj.x;       // false
 obj.x;          // 1
3.
 window.x = 1;
 'x' in window;   // true
4.
 {} instanceof Object        // true
  typeof 100 === 'number'    // true
5.
 function Foo(){}
 Foo.prototype.x = 1;
 var obj = new Foo();
 obj.x;     // 1
 obj.hasOwnProperty('x');   // false
 obj._proto_.hasOwnProperty('x');   // true
6.
 this;    // 若是全局变量 --> window (浏览器)
 var obj = {
   func: function(){return this;}    // this --> 当前对象
 };
 obj.func();     // obj
7.
 void 0     // undefined
 void(0)    // undefined
 
 
 

转载于:https://www.cnblogs.com/huhaoabc/p/7712084.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值