对象.属性
js 执行方法
先判断.之前是不是undefined和null
如果不是,就判断它是不是对象
如果不是对象就把它转换成对象
然后看是不是. 如果是.就直接返回值如果是空就返回undefined
如果是【】那就 先计算 然后转字符串 然后返回字符串对应的值如果是空就返回undefined
Boolean(object)//true 空对象也是
全部是大写字母是常量 不可变
+- 1=1
-0===0//true
一元+ 对任何数据类型操作结果要么是数字或NaN或正负无穷
一元- 对数值取负 第一步先转换成数值 第二步取负
++1 2 先加一在 运算
1++ 1 先运算在加一
--1 0
1-- 1
var a=1
var b=+++a
//a=2 b=3
答案:
1 先算b
2 a++
3然后再算a
4 a+++a
5 把结果给b
JS的优先级:
优先级 结合性 运算顺序
属性访问 最高优先级.【】
第二的是一元运算符
=赋值运算最低优先级
+ ++ - --先转换数值 在执行操作
只有两种从右到左运算 一元操作符 三目运算 赋值
其他都是从左向右运算
表达式都是从左向右运算的运算顺序
!a++ //Boolean
~10//-11 取反-1
b=a+++ ++1
--小数时 先转成整数 在-- 然后再转成小数
! 非 转成Boolean类型 然后在取反
typeof 返回数据类型
value 返回undefined
del 删除
隐式转换
- / * % js运算 中转换成数值型
nan 和运算谁都是nan
+ 数值相加 有一个字符串就拼接
nan 不等于 nan
null 和 undefined 只和自身不全相等 ==
相等=== 不转换
== 全等会进行隐式转换
对象是否相同 是判断对象的引用是否相等
语句
function name(){} 函数声明 会被提升至作用域的最顶端
var name =function (){} 函数表达式 仅声明操作被提前 赋值操作不会被提前 调用它必须在它的下面
网友评论