javascript前期笔记比较简单
一 、表达式与操作符
表达式的种类?(算数、关系、逻辑、赋值、综合)
算数运算符(+ - * / %)
隐式转换的本质是内部调用Number()函数
toFixed(2) 保留多少位小数
Math.pow(2, 3) //2的3次方(幂)
Math.sqrt(81) // 81开根 11
Math.ceil(3.4) //向上取整
Math.floor(2.2)// 向下取整
isNaN(NaN) //true Number() 判断一一个值书不是NaN(not is number)
1、 运算符(! && ||)
!20//false ==>置反
!!true //true
!!false // flase
!true //false
2、 短路计算
3 && 6//6
undefined && 15 //undefined
15 && undefined //undefined
nul1 && 2//nullnul1
'' && 16//
NaN && undefined // NaN
3 || 6//3
0 || 6//6
nul1 | undefined // undefined
'a' || 'b'//'a'
NaN || null//nul1
3、 赋值运算符
var a = 3
a += 5 //等价于 a=a+5
c %= 3 // 等价与c=c%3
// 自增 和自减运算符(-- ++),表示在自生基础上减1加1
// ++a(先加在用) 和a++(先用在加)
var k = 5
var cc = ++k
var ss = k++
console.log(c, ss)
4、 综合运算的顺序(非运算———数学运算——关系运算——逻辑运算)
//小案例
var year = prompt('请输入年份')
// 判断是否是闰年?
// 能被4整除,且不能被100整除
// 能被100整除,且不能被400整除
if (year % 4 == 0 && year % 100 != 0 || year % 100 == 0 && year % 400 != 0) {
alert('今年是闰年')
} else {
alert('今年不是闰年')
}
二 、流程控制语句
条件语句 :if语句的基本使用 ifelse多条件分支判断 if语句算法 switch语句 三元运算符
循环语句 for循环语句 for循环算法算法 while循环语句 break continue do while语句 while语句算法
初识算法 什么是算法 累加器和累乘器 穷举法 综合算法题
1、 if 和 elseif
//小案例
// 1、if语句的基本使用(if语句是最简单的条件语句,也称选择语句。它通常结合else一起使用,表示如果.….就.….否则…。)
if (1) { } else { } //语法
var prompts = prompt('请输入数字') //奇偶小案例
if (prompts % 2 == 0) {
alert('偶数')
} else {
alert('奇数')
}
if (prompts > 4) alert(111);//单行if语句
// 2、if else if 多条件语句
if (1) { } else if (2) { } else { } // 语法
var weigth = Number(prompt('请输入体重/公斤'))
var height = Number(prompt('请输入身高/米'))
var bmi = weigth / Math.pow(height, 2)
if (bmi < 18.5) {
alert('偏瘦')
} else if (bmi < 24) {
alert('正常')
} else if (bmi < 28) {
alert('过胖')
} else if (bmi < 32) {
alert('肥胖')
} else {
alert('死肥仔')
}
2 、switch语句
//小案例
var months = Number(prompt('请输入1-12月份'))
switch (months) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
console.log('31天')
break;
case 4:
case 6:
case 9:
case 11:
console.log('30天')
break;
case 2:
// if()
console.log('28或者29')
break;
default:
console.log('请输入正确的月份')
}
4、三元运算符
条件表达式?表达式1:表达式2
5、for 循环语句
for (var i = 1; i <= 10; i += 2) { //(初始值;是否满足条件;增加)
console.log(i)
}
for (var i = 10; i >= 1;) {
console.log(i)
// i-=3
i--
}
//6、for循环算法
var sum = 0
for (var i = 1; i <= 100;) { // 求1-100的和
sum += i
i++
}
console.log(sum)
// 穷举法
6、while循环语句 (不定范围的循环)
var start = 1
while (start <= 100) {
console.log(start)
start++
}
var n = 1
while (n * n < 456789) { // 寻找满足n的平方大于456789的最小的整数
n++
}
console.log(n)
var l = 1 // 天
var count = 0
while (count <= 500) { // 小兔纸第一天一个萝卜,第二天两个、第三天三个,需要多少天拔完
count += l
l++
}
console.log(l - 1) //注意:这里有一个"出一错误"
7、break(跳出循环) continue(跳过循环中的一个迭代,并继续执行(在for 循环中用得多))
for (var i = 1; i <= 10; i++) {
console.log(i) //1 2 3 4
if (i == 4) {
break;
}
}
let val = 1
while (true) { // 死循环配合break 使用
if (val * val >= 456788) {
console.log(val) //676
break
}
val++
}
var day = 1;
var j = 0
while (true) { //死循环配合break 使用
if ((j += day) >= 500) {
console.log(day) //32
break;
}
day++
}
for (var i = 1; i <= 5; i++) { //continue
console.log(i) //1 2 4
if (i == 3) {
continue;
}
}
8、do while循环(后测试循环语句)
do { '循环体' } while ('循环执行条件') // 语法
var is = 1 // do while 循环是后判断循环方式,至少循环一次
do {
console.log(i)
is++
} while (is <= 100)
parseInt(Math.random() * (b - a + 1)) + a // 得到[a,b]区间的整数公式
do { //取[-4,4] 之间的两个随机变量,但不能为0
var t1 = parseInt(Math.random() * (-4 - 4)) + -4
var t2 = parseInt(Math.random() * (-4 - 4)) + -4
} while (t1 == 0 && t2 == 0)
console.log(t1, t2)
9、算法小案例
// 猜数字小游戏
var random = parseInt(Math.random() * (99 - 2)) + 2
var min = 1;
var max = 100;
while (true) {
var prompts = Number(prompt(`请输入${min}-${max}`))
if (prompts > max || prompts < min) {
alert('你输入的的数字不在范围内')
continue;
}
if (prompts > random) {
alert('太大了')
max = prompts
} else if (prompts < random) {
alert('小了')
min = prompts
} else {
alert('猜中了')
break;
}
}
// 穷举法
// 穷举法,顾名思义,是指根据题目的条件确定答案的大致范围
// ,并在此范围内对所有可能的情况逐一验证,直到全部情况验
// 证完毕。若某个情况符合题目的条件,则为本问题的一个解;
// 若全部情况验证后都不符合题目的条件,则本题无解。
// 穷举法求能被5或者3整除100以内的数字
for (var i = 1; i <= 100; i++) {
if (i % 3 == 0 && i % 5 == 0) {
console.log(i)
}
}
// 寻找约数
var n = Number(prompt('请输入数字'))
for (var i = 1; i <= n; i++) {
if (n % i == 0) {
console.log('约数' + i)
}
}
//综合算法
// 寻找100以内的质数(质数又称素数。一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数;否则称为合数(规定1既不是质数也不是合数)。)
outer: for (var i = 2; i <= 100; i++) {
for (var k = 2; k < i; k++) {
if (i % k == 0) {
//说明数字i不是质数,因为它找到了除1和它自身之外的约数了,测试下一个数字了
//continue表示放弃这个数字,开始迭代下个数字,continue它负责的是它所在的最内层的
//要给外层for循环加上1abe1,然后在continue的后面加上这个label,o
//这样就表示立即开始送代外层for循环的下一个数字了,而不是内层for循环
continue outer;
}
}
console.log(i)
}