一、复习知识点:
// 循环
// while 条件复杂的循环语句
// do while 至少执行一次
// for 已知循环次数
// 注意
// 嵌套 外层循环走一下,内层循环走一圈
// break / continue
// 100以内所有的质数
// 思路:
// 1 把100以内所有的数遍历一遍
// 2 判断每一个数是不是质数
// 思路:假设法 (假设是一个质数,去找不是质数的证据)
// 3 每5个换行
// 思路:给一个计数器,出现一个质数,就计数一次(计数器是5的倍数就换行)
for(var i = 2 , count = 0 ; i <= 100 ; i++) {
// 假设是质数
var flag = true ;
// 找不是的证据 --- 只要能被任何一个数整除就不是
for(var j = 2 ; j < i ; j++) {
// 只要能被其他数整除
if(i % j === 0) {
// 说明不是质数,也就是假设被推翻
flag = false;
// 结果已经出来,就不需要继续找证据
break ;
}
}
// 最终根据flag的值来判断是不是质数
// flag ? document.write(i) : '';
if(flag) {
document.write(i + ' ') ;
// 计数器自增
count++ ;
// 判断是不是5的倍数
if(count % 5 === 0) {
document.write('<br>')
}
}
}
2.死循环
// while
// var i = 0 ;
// while(i < 10) {
// console.log(666);
// i++ ;
// }
// for(;;)
// for(;;) {
// console.log(666); // 最简单的死循环
// }
// 把for语句改写成while的形式,但是注意分号不能省
var i = 0 ;
for( ; i < 10 ; ) {
console.log(666);
i++ ;
}
for 第一个分号前面的代码只会执行一次,因此可以声明多个变量
for(var i = 0 , count = 0 ; i < 100 ; i++) {
if(i % 2) {
document.write(i + ' ')
count++;
if(count % 10 === 0) {
document.write('<br>')
}
}
}
3。
// js作用
// 操作 html + css
// 动态渲染数据
// 数据类型:number / string / boolean / null / undefined
// 判断数据类型 typeof
// 转换
// 转字符串 String() +
// 转数字 Number() +/-/*///% Math.round() Math.floor() Math.ceil()
// parseInt()
// 在把小数转为整数的时候 == Math.floor()
// 还可以取出字符串里面的小数(字符串里面的第一位数字开始,到第一个非数字结束)
// parseFloat() 取小数
// 判断
// if switch
// 循环
// 嵌套
// while for
// break ,continue
// 死循环
// 函数
// 系统函数 , 自定义函数
// 封装性,复用性,调用性
// 函数的封装
// 语法 function name(形参1,形参2,...) {}
// 提取形参
// 是否需要返回值
// 注释!!!!!!!!!!!!
// 调用
// 形参(函数声明),实参(函数调用)
// return
1。关于参数的问题
函数在调用的时候,必须按照要求传参
实参和实参不对等的时候-------- 不报错
实参多或者少,函数也不会报错
2。关于return
作用: 给函数一个返回值
会提前结束整个函数
function isZhi(n) {
for(var i = 2 ; i < n ; i++) {
if(n % i === 0) {
return false ;
}
}
return true ;
}
3。作用域
变量是有作用域的:
变量的作用域
优先找自己的,自己找不到就找向上一级查找,一直找到script为止,一直找不到就报错
全局作用域 ------- 全局作用 在函数外面声明的变量 或者 没有var的变量
局部作用域-------- 局部作用 在函数内部声明的变量
变量: 变量可以重复声明 变量可以不声明直接赋值 当函数内部的变量和外部的变量相同时,优先使用自己的变量(同人不同名)
// console.log(a); // undefined 变量已经声明,但是没有赋值