JS基础概念整理与简单练习-Part1
(写在前面:想着本身也会整理,不如把整理的内容放到博客里,能帮助到检索这篇博客的人一点点也好。没想到之前写的一点内容也有人浏览,挺惊讶的,这几天多整理一些之前写的本地笔记上传吧。)
-
if 练习1
小结:
① else if条件累赘了;
② 需要判断值是否合法// 空字符转换为数值是0;
③ prompt( )函数的返回值是String类型的;
-
if 练习2
-
switch练习
小结:
① 这个例子不适合用switch写(更适合if),不过未注释部分是标准写法。
-
while练习1
题目较简单,未附代码。小结:
① do-while语句是 后测试循环语句;while语句是 前测试循环语句。
-
while练习2
本题修改自if练习1,在输入分数部分添加了一个循环,错误便重输。
小结:
① 此题的score全程都是字符串,只有在比较时临时转换为数值进行比较;不能转为数值的会被转为NaN,比较结果是false。
② 第一个if需要全员true才能通过,score.length必须得有(保证空字符不会变成0)。
③ 因为不能转为数值的在第一个if处就false陷入循环了,所以不需要下面的isNaN判断。
④ 因为 if练习1 中防止 'a'与数值比较为false,跳到 正确格式值 的分支,所以需要做判断。(第一步永远是判断异常值!)
⑤ 养成好习惯,break也加分号。
-
for练习1
小结:
① 一般这种题都是比较除数(%)
② sum初始值可以定义在i=1后面,用逗号隔开。
-
for练习3
小结:
① 记得一定要做var声明!
② 个位数获取的简单方法。
关于var变量的解释:
① var num = 1;是在当前域中声明变量。如果在方法中声明,则为局部变量;如果是在全局域中声明,则为全局变量。【变量声明】
② num = 1;是对属性赋值操作。首先,它会尝试在当前作用域链(如在方法中声明,则当前作用域链代表全局作用域和方法局部作用域etc)中解析 num; 如果在任何当前作用域链中找到num,则会执行对num属性赋值; 如果没有找到num,它才会在全局对象(即当前作用域链的最顶层对象,如window对象)中创造num属性并赋值。【创建全局对象属性】
不使用var声明变量的时候,变量是全局对象(window对象)属性,在全局中变量是全局变量。
③ 总结:使用var为变量声明,带不可删除属性,无法被删除;不使用var为全局变量的一个属性,可从全局变量中删除。
-
for练习4
小结:
① 循环多了就要注意逻辑!
-
嵌套for练习1
小结:
① 两者都对,但是为了输出的结果美观,建议将输出放在span里,由css统一控制。
-
嵌套for练习2
小结:(题目是打印出1-100之间的所有质数)
① console.time( )和console.timeEnd( )可充当程序的计时器。
② 想办法优化isPrime质数判断函数。