javascript高级之操作符、作用域

书看的眼皮困了,来写个笔记打打精神。
一、操作符
ECMAscript操作符包括算术操作符、位操作符,关系操作符,相等操作符,它们都能适用于很多值,不过在应用于对象的时候,会用到valueOf()方法或toString()方法来方便取得可以操作的值。
1、一元操作符
递增递减:a++,++a,a–,–a,
前置与后置两种类型,把递增操作符放在变量后面不会改变语句结果,但是当语句中包含其他操作时,前置递减与后置递减有区别。

var num1=2;
var num2=20;
var num3=--num1+num2; //等于21
var num4=num1+num2;   //等于21
var num1=2;
var num2=20;
var num3=num1-- +num2; //等于22
var num4=num1+num2;   //等于21

各类型值运算结果:

var s1="2";
var s2="z";
var b =false;
var f=1.1;
var 0 ={
    valueOf:function(){
        return -1;
    }
};
s1++;   //内容为数字的字符串,值变成数值3
s2++;   //内容为非数字的字符串,值变成NaN
b++;    //内容为boolean,值变成1
f--;    //内容为浮点数值,值变成0.100000000000009(由于浮点舍入错误导致)
o--;    //内容为对象,调用valueOf(方法取到可计算的值),值变成-2

一元加和减操作符:+ -
+对于数值是正常加减运算,对于非数值,会像Number()转型函数一样対值进行转换,对字符串进行拼接效果。
-主要用于负数表示。

2、位操作符
位操作符用于最基本的层次上,即按内存中表示数值的位来操作数值。将十进制数值转换为二进制来操作。
十进制转二进制:数值除2求余方式,直到除0为止。
二进制转十进制:以2的幂次方计算。
按位非:~返回数值的反码,速度跟快。
按位与:&
按位或:|
左移:<< 左移不会影响操作符的符号位,负数也不影响。
有符号右移:>>
无符号右移:>>>对于负数来说,无符号右移是以0来填充空位,会将负数二进制码当成正数二进制码,顾数值差别较大。
以上操作符均用二进制计算。

二、作用域
基本类型值和引用类型值的特点:
1、基本类型值在内存中占据固定大小的空间,因此保留在栈内存中;
2、引用类型的值是对象,保存在堆内存中,
3、从一个变量向另一个变量复制基本类型的值,会创建这个值的副本;
4、包含引用类型值得变量包含的并不是对象本身,而是一个指向该对象的指针;
5、确定一个值是哪种基本类型可以使用typeof操作符,而确定一个值是哪种引用类型可以使用instanceof操作符;

所有变量(包括基本类型和引用类型)都存在于一个执行环境(也称为作用域)当中,这个执行环境决定了变量的生命周期,以及那一部分代码可以访问其中的变量。
1、执行环境有全局执行环境和函数执行环境之分;
2、每次进入一个新的执行环境,都会创建一个用于搜索变量和函数的作用域链;
3、函数的局部环境不仅可以访问函数作用域中的变量,也可以访问其父环境乃至全局环境;
4、全局环境只能访问在全局环境中定义的变量和函数;

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值