JavaScript的学习笔记(day02)

1.运算操作符

+,-,*,/,%
除了加号外,其他运算符可以将字符串隐式转换成为数字

2.一元运算符

“+” 将操作数转化成为数字
将字符串进行拼接
"-"将操作数转化成为数字,并且变为负数
! 逻辑取反
++ 递增
当++放在前面时,先累加再进行赋值
var sum = 1;
var a = ++sum => 2
当++放在后面时,先赋值,后累加
var sum = 1;
var b = sum++ => 1
– 递减
与递增类似
delete 删除数组或者对象中的索引指定值
typeof 返回当前操作数的数据类型,基本数据类型直接准确返回
引用数据类型,Function返回’function’,其他返回’object’
void 对于任何值返回undefined

3.隐式转换

原始类型:Undefined、Null、String、Number、Boolean、Symbol
对象类型:object
基本数据类型的转换:通过加减乘除等符号 ==隐式转换
引用数据类型的转换:
当被Preferred标记为Number时,先调用valueOf()方法,如果返回原始值,则返回原始值
如果返回值不是一个原始值,则调用toString()方法,如果返回的是原始值,则返回原始值
否则抛出异常
当被Preferred标记为String时,先调用toString()方法,如果返回原始值,则返回原始值
如果返回值不是一个原始值,则调用valueOf()方法,如果返回的是原始值,则返回原始值
否则抛出异常
注意:只有对象为Date类型时,会被标记为String,其余的都是标记为Number

4.经典案例

[] + [] = ""
解释:不是Date对象,则被标记为Number,调用valueOf()方法,结果为[],不是原始值
继续调用toString()方法,结果为 "" ,类型是string,是原始值,则进行字符串拼接,结果为 "" 。

[] + {} = "[object Object]"     
解释:不是Date对象,则被标记为Number,调用valueOf方法,[]的结果为[],{}的结果为{},不是原始值
继续调用toString()方法,[]的结果为"",{}的结果为"[object Object]",通过字符串拼接为"[object Object]"
是原始值。

{} + [] = 0
解释:在js中,一个{}为一个代码块,所以上面的等式被解析为了{}; + [],前面的空代码块被忽略,后面的+[]的原始值是
 "",把""转化为Number结果是0。

{} + {} = "[object Object][object Object]"
 解释:在node中,被解析为了{{} + {}}。

5.赋值运算符

=,+=,-=,*=,/=,%=

6.比较运算符

  ==:通过类型转换,其值能够相等
 ===:全等,即值和类型都相等。不通过类型转换
  !=:不相等
  !==:值不等或者类型不相等
  >:大于
  <:小于
  >=:大于等于
  <=:小于等于

注意:如果符号两侧都是字符串,不会把字符串转化成数值,而是比较Unicode编码,
在进行Unicode编码比较时,是一位一位进行比较的。

7.逻辑运算符

 &&:逻辑和,当所有条件满足时为真
  当第一个表达式为真,整个表达式结果取决于第二个表达式,返回第二个表达式
  当第一个表达式为假,整个表达式为假,返回第一个表达式
  如果第一个表达式是null,NaN,undefined,false,0,""可被转换为false的值的时候返回该值
  [null,NaN,undefined,false,0,""]直接返回该操作数
 ||:逻辑或,有一个条件满足时为真
  如果两个或多个操作数都是null,NaN,undefined,false,0,""可被转换为false的值的时候返回该值。
  如果第一个操作数是null,NaN,undefined,false,0,"" 则返回第二个操作数。
  如果第一个操作数是真,直接返回第一个操作数。
  如果第一个表达式是假,真个表达式的结果取决于第二个表达式,返回第二个表达式
 !:逻辑非,对操作数进行取反

8.三目运算符

基本语法为:expression ? sentence1 : sentence2
解释:当expression的值为真时执行sentence1,否则执行 sentence2

9.类型转换

其他类型转换为String:
除了null,undefined外,其他的基本数据类型都有一个toString()函数,可以根据输入的参数决定其进制
其他类型转换为Boolean:
通过Boolean()包装器
其他类型转换为Number:
Number()包装器
parseInt()函数
parseFloat()函数
+号

10.流程控制语句(分支,循环)

分支
if…Else语句
if…else if…else语句
switch case语句
循环
for语句
for/in语句:可以用来遍历对象属性
while语句
do/while语句

11.递归

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值