JavaScript-入门第二周学习笔记1

目录

一、数据类型转换

1、隐式转换

2、强制类型转换

二、运算符和表达式

1、算术运算(js第一周笔记1)

2、比较运算

 3、逻辑运算

 4、位运算

5、赋值运算

6、三目运算 

扩展:

 1、舍入误差

2、获取i的一个字符的ascii码


一、数据类型转换

1、隐式转换

多半都在运算符之中。

2、强制类型转换

        ①转字符串(2种方式)

                Ⅰ xx.toString();

                        undefined和null不能使用.去调用任何的属性和方法,因为它们不是对象。

                Ⅱ String(xx);

                        万能的,但是没什么用,千万不要手动使用,完全等效于隐式转换。

        ②转数字

                ⅠparseInt():

                Ⅱ parseFloat();

                Ⅲ Number();

        ③转布尔

                Boolean(xx);

                        万能的。任何类型都可以转为一个布尔值。

                        简化版写法:!!xx

             0, “ ”,undefined,null,NaN,false(这六个值得结果为false,其余都为true)。

注意:记住为false的情况,在循环或分支的条件判断中都会带有此隐式转换,隐式转换为布尔值。

二、运算符和表达式

1、算术运算(js第一周笔记1)

2、比较运算

>        <        >=        <=        ==        !=        ===        !== 

        结果都为布尔值(默认隐式转换,左右两边都会悄悄转为数字再比较)

        特殊:

                ①如果左右两边参与比较的都是字符串,则是按位比较每个字符的十六进制的unicode号(十进制为ascii码) 

        0-9<A-Z<a-z<汉字

        汉字的unicode:中文字符集unicode编码范围

        汉字的第一个字:一(unicode:4E00)-(ascii:19968)
        汉字的最后一个字:龥(unicode:9fa5)-(ascii:40869)

                ②NaN参与任何比较运算结构都为false(js第一周笔记2)

                ③undefined == 0

                 问题:==区分不开undefined和null,怎么才能区分开?
                       undefined===null
                       全等:===,要求值和数据类型都要相同,换句话说,就是不再带有隐式转换
                     !==,不带隐式转换的不等比较

String()方法的底层原理:

function String(x){
					if(x===null){
							return "null";
						}else if(x===undefined){
							return "undefined";
						}else{
							return x.toString();//return 返回
					}
}

 3、逻辑运算

        (js第1周笔记2-扩展)

        &&与        ||或        !非

        特殊:短路逻辑,只要前一个条件已经可以得出最后结论,则后续条件不再执行。

                ①&&短路

                如果前一个条件为true,后一个操作才执行
                如果前一个条件为false,后一个操作不执行

                简化了简单的分支:if(条件){操作}

                语法:   条件&&(操作)

        注意:操作只能有一句话,能用短路分支就不用if分支。

//before
if(total>=500){
    total*=0.8;
}
//after
total>=&&(total*=0.8);

                ②||短路

               如果前一个条件为true,不需要执行后一个
                如果前一个条件为false,需要执行后一个
                使用场景:两个值二选一 - 后期做浏览器兼容性(老IE)
                        e=e||window.event; 

 4、位运算

        左移:m<<n,读作m左移了n位,相当于m*2的n次方

        右移:m>>n,读作m右移了n位,相当于m/2的n次方

        缺点:底数永远只能是2

5、赋值运算

        一句话执行了两个操作,先运算,再赋值

        +        =         -=         *=         /=         %=         ++         --
        何时使用:只要取出变量中的值,在做计算,之后还要在保存回去时,就要试用赋值运算

        递增:i++; 每次只能+1
        累加:i+=n; 每次想加几

        小重点(笔试题):++ 分为 ++i 和 i++
           ①单独使用时,没有参与别的表达式,放前放后都一样
           ②如果参与了别的表达式:
                Ⅰ 变量中的值其实都会+1
                Ⅱ ++i,返回的是递增后的【新值】
                Ⅲ i++,返回的是递增前的【旧值】

6、三目运算 

        简化分支:if(){}else{}    if(){}else if()else{}

        ①条件?操作1:默认操作;

        ②条件1?操作1:条件2?操作2:默认操作;

注意:只能简化简单的分支,三目运算的操作也只能有一句话。默认操作不能省略。

扩展:

 1、舍入误差

num.toFixed(n);//带有四舍五入的功能,并能按传入的n保留n位小数

小缺陷:结果会变成一个字符串,推荐搭配上parseFloat进行只用

parseFloat(num.toFixed(n));

2、获取i的一个字符的ascii码

var ascii = str.charCodeAt(0);

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值