js零基础--第二周

本文详细介绍了JavaScript中的数据类型转换,包括强制转换和隐式转换,涉及字符串、数字、布尔值的转换规则。同时讲解了运算符和表达式的用法,如算术、比较、逻辑及位运算符,以及赋值运算和三目运算。文章还涵盖了分支结构的使用,如if...else和switch,并强调了循环结构的重要性。此外,还提及了数组的基础知识,包括创建、访问、遍历和API操作。内容深入浅出,适合初学者巩固JavaScript基础知识。
摘要由CSDN通过智能技术生成

Day6

1、***数据类型转换:

       1、强制转换

              1、转字符串:var str=x.toString();//x不能是undefined和null - undefined和null不能使用.操作

                              var str=String(x);//万能的,完全等效于隐式转换,还不如+""

                      不重要:页面上一切数据的数据类型都是字符串

              2、*转数字:

                     1、*parseInt/Float(str);//专门为字符串转为数字准备的

                            原理:从左向右,依次读取每个字符,碰到非数字字符则停止,如果一来就不认识则为NaN

                            Int不认识小数点  Float认识第一个小数点

                     2、Number(x);//万能的,完全相当于隐式转换,还不如-0 /1 *1 %1

              3、转布尔:

                     Boolean(x);//万能的,任何人都可以转为布尔,绝对不会手动使用,还不如:!!x

                     ***只有6个会为false:0,"",undefined,null,NaN,false,其余都为true

                     在分支/循环的条件之中,自动隐式转换,以后不管代老师在条件里面写的有多奇怪,你都要知道他会悄悄的变成一个布尔值,你只需要判断是不是那6个

       2、隐式转换:都是出现在运算符之中

      

2、****运算符和表达式

     1、*算数运算符:+ - * / %

              特殊:1、%:取余,判断奇偶性

                    2、具有隐式转换,默认转为数字,在运算

                            undefined->NaN

                            null->0

                            true->1

                            false->0

                            特殊:1、+运算,碰上字符串,拼接

                                  2、-*/%:字符串也可以转为数字,但是纯数字组成的字符串才行,包含非数字字符则为NaN

     2、*比较运算符:>  <  >=  <=  ==  !=  ===  !==

               结果:布尔值

               隐式转换:默认,转为数字,再比较大小

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

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

常识:汉字的第一个字:一:unicode号:4e00 - ascii:19968

                                                     最后一个字:龥:unicode号:9fa5  - ascii:40869

                          2、NaN参与任何比较运算结果都为false,所以没有办法使用普通的比较运算来判断x是不是NaN

                            !isNaN(x);

                          3、undefined==null;//true

                      区分:undefined===null;//false

                      全等:=== - 要求数值相同,并且数据类型也要相同,不再带有隐式转换

                            !== - 不再带有隐式转换的不等比较

                     重写String方法,看出==和===的区别

                     function String(x){

                            if(x===undefined){

                                   return "undefined";//return->返回,后面跟着的就是返回的结果

                            }else if(x===null){

                                   return "null";

                            }else{

                                   return x.toString();

                            }

                     }

3、*逻辑运算符:

              作用:综合比较,结果也是为布尔值

              隐式转换:左右两边都会悄悄转为布尔值,再综合比较结果

              &&:全部满足,才满足

                       一个不满足,则不满足

              ||:全部不满足,才不满足

                   一个满足,则满足

              !:颠倒布尔值

              特殊:短路逻辑:如果前一个条件,已经可以得出最终结论了,没有必要看后续

                       &&短路:如果前一个条件满足,才执行后一个操作,如果前一个条件不满足,则不管后续操作

                           目的:简化【简单的】分支:

1、一个条件一件事,满足就做,不满足就不做:if(){} 

2、【简单的】- 操作只能有一句话:多句操作导致我们以后维护项目时观看/阅读代码不方便,往往以后很多操作可能就只有一句话

                           语法:条件&&(操作);

                     ||短路:实现浏览器兼容性问题:二选一

                            e=e||window.event;

    4、位运算:

              左移:m<<n,读作m左移了n位,翻译:m*2的n次方

              右移:m>>n,读作m右移了n位,翻译:m/2的n次方

              垃圾:底数只能固定为2,虽然可以设置指数,但是不能设置底数

    5、*赋值运算:+=   -=   *=   /=    %=   ++    --

              一句话完成两个操作,先计算,再赋值回去

             

              i++;//递增,每次只会固定+1

              i+=1;//累加,每次加几由我们程序员决定

              i=i+1;//最老土的写法

*笔试/算法题:++i 和 i++的区别?

                     单独使用时,放前放后无所谓,效果一样

                     但是如果参与了别的表达式,变量中的值都会+1

                            前++【返回的是加了过后】的新值  ++i

                            后++【返回的是加了过前】的旧值  i++

    6、*三目运算:简化if...else... if...else if...else

              语法:看条件满足否,满足则作操作1,不满足则作默认操作

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

                     2、条件1?操作1:条件2?操作2:默认操作  

              特殊:

                     1、默认操作不能省略,省略后会报错

                     2、如果操作有多句话,还是推荐使用if分支,多句操作再同一行不方便以后维护

                    

              总结:

                     if                   ===            &&短路

                     if...else              ===            三目运算

                     if...else if...else   ===            三目运算

                     操作多句话使用以上三个      操作一句话使用以上3个

                    

扩展:

       1、计算机很笨,牛逼在快和记忆力好(机械硬盘-永久保存,固态硬盘-只能保存10年):

计算机带有摄入误差:

解决:num.toFixed(d);//d代表保留的小数位数,会四舍五入运算

缺陷:返回的是要给字符串,建议搭配上一个parseFloat使用最好

      

2、获取字符串中第一个字符的ascii码:str.charCodeAt(0);

             

作业:要求:不允许使用if分支,只能使用短路 和 三目、老规矩保留

       1、PPT24页 4道题

              -1.应用题:买菜找零,买了1.6元的菜,给了老板2元钱,问:应找零多少钱

             -2.如何解决舍入误差?

            - 3.判断奇数、偶数:请用户输入一个数字,将数字%2如果返回1,说明是奇数,否则说明是偶数

             -4.笔试题:判断输出结果:

       2、PPT29页 第2题

                -2.比较价格:请用户输入一个商品价格:如果价格>6888,说明涨价了;如果价格<6888,说明降价了。

       3、PPT35页 2道题

              -1、页面中弹出一个输入提示框,读取一个文本输入,控制台中输出它是“一个英文字符”吗?是“一个数字”吗?是“一个汉字”吗?

             -2、页面中弹出一个输入提示框,接收用户输入的一个数字表示年份,控制台中输出这个年份是否为闰年。

                注:闰年的判断公式为:

                1.年份能被4整除,且不能被100整除的是闰年。

                2.年份能被400整除的是闰年。

       4、PPT37页 2道题

              -1、价格打折:请用户输入充值金额︰如果用户输入的金额>=100元,则享受八折。输出实际应收金额

             -2、请用户输入一段留言:如果输入了,就输出留言的内容。否则就输出“主人很懒,什么也没留下”

       5、PPT43页 第2题

2、请用户输入工资,涨薪1000后,输出涨薪后的结果。

       6、PPT49页 2道题

              1、弹出一个输入提示框,请用户输入一个表示工资的数字,按如下规则在控制台中输出该工资金额的级别: 

(1)大于等于20000,显示“高工资”

(2)小于20000大于等于8000,显示“中高工资”

(3)小于8000,显示“普通工资”

2、体重健康指数(克莱托指数)计算公式如下∶体重(Kg)➗身高的平方(M)  

20-25正常,20以下偏瘦,25以上偏胖。

例如:某人是60kg,1.7m,那就是︰60÷1.72=20.76,属于“正常”体重;

编写一个函数,接收体重和身高作参数,返回判定结果。

       7、三目运算版 - 开关门

Day7

复习

1、数据类型的转换

       强制转换:

              1、转字符串:

                     x.toString();//x不能是undefined和null

                     String(x);//万能的,还不如+""

                     页面上一切数据都是字符串类型---所以一般不会用到

             

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值