3.1循环
for(var i = 0; i < 10; i++){
console.log(i);
}
步骤
- 声明变量i = 0
- if(i < 10){
console.log(i)
}- i++
- if(i < 10){ 不满足条件 停止循环
console.log(i)
}
var i = 0;
for(; i < 10;){
i++;
}
var i = 0;
while(i < 10){
console.log(i);
i++;
}
var i = 1;
for(; i ;){
console.log(i);
i++;
if(i == 11){
break;//i = 0;
}
}
题
从0开始做加法,加到什么时候总和小于100
var sum = 0;
for(var i = 0; i < 100; i++){
sum+=i;
if(sum >= 100){
break;
}
}
100以内的数跳过可以被7整除或个位数是7的数
for(var i =0;i <= 10; i++){
if(i % 7 == 0 || i % 10 == 7){
continue;
}
}
可以被4或5或6整除的数
for(var i = 0; i <= 100; i++){
if(i % 4 ==0 || i % 5 ==0 || i % 6 ==0 ){
console.log(i);
}
}
打印 0-100 的数
()只能有一句,不能写比较
()不能出现i ++ i–
var i = 100;
for(; i--;){
console.log(i);
}
do while
var i = 0;
do{
console.log('我要开始循环了');
i++;
}while(i < 100)
10的N次方
var n = 5;
var num = 1;
for(var i = 0; i < n; i++){
num *= 10;
}
console.log(num);
n的阶乘
var n = 5;
var num = 1;
for(var i = 1; i <= 5; i++){
num *= i;
}
console.log(num);
数值转字符串
var num = 789;
var a = num % 10;
var b = (num - a) % 100 / 10;
var c = (num - a - b * 10) / 100;
console.log('' + a + b + c);
打印三个数中最大的数
var a = 1,
b = 2,
c = 3;
if(a > b){
if(a > c){
console.log(a);
}else{
console.log(c);
}
}else{
if(b > c){
console.log(b);
}else{
console.log(c);
}
}
打印100以内的质数
仅仅能被1和自己整除的数
var c = 0;
for(var i = 2; i < 100; i++){
for(var j = 1; j <= i ;i++){
if(i % j == 0){
c++;
}
}
if(c == 2){
console.log(i);
}
c = 0;
}
3.2引用值初识
array、 object、function 、date 、RegExp
array
var arr = [1, 2 ,3, 4, 5, 6, 7];
arr[3] = null;//赋值
console.log(arr.length);//取长度
for(var i = 0; i < arr.length; i++){
carr[i] += 2;
}
object
var person = {
name = '畅',
//属性名(键名):属性值(键值)
age = 18,
height = 188.
job = '搬砖'
}
person.name = '步';
console.log(person);
Object = 引用类型 object /array
Object
console.log(typeof(null));//object null空对象指针,历史遗留问题
console.log(typeof(undefined));//undefined
console.log(typeof(function(){}));//function
console.log(typeof(1 - 1));//number
console.log(typeof('1' - '1'));//number
console.log(a);//报错
console.log(typeof(a));//undefined
console.log(typeof(typeof(a)));string
console.log(typeof(+));//报错
3.3显示类型转化
Number()
var a = '123';
console.log( typeof(Number(a)) + '-' + Number(a)))//number - 123
var a = 'true';
console.log( typeof(Number(a)) + '-' + Number(a)))//number - NaN
var a = true;
console.log( typeof(Number(a)) + '-' + Number(a)))//number - 1
var a = false;
console.log( typeof(Number(a)) + '-' + Number(a)))//number - 0
var a = null;
console.log(typeof(Number(a)) + '-' + Number(a)))//number - 0
var a = undefined;
console.log(typeof(Number(a)) + '-' + Number(a)))//number - NaN
var a = 'a';
console.log(typeof(Number(a)) + '-' + Number(a)))//number - NaN
var a = '1a';
console.log(typeof(Number(a)) + '-' + Number(a)))//number - NaN
var a = '3.14';
console.log(typeof(Number(a)) + '-' + Number(a)))//number - 3.14
parseInt()
var a = '3.14';
console.log(typeof(parseInt(a))+ '-' + parseInt(a));//number - 3
var a = true;
console.log(typeof(parseInt(a))+ '-' + parseInt(a));//number - NaN
var a = null;
console.log(typeof(parseInt(a))+ '-' + parseInt(a));//number - NaN
var a = undefined;
console.log(typeof(parseInt(a))+ '-' + parseInt(a));//number - NaN
var a = NaN;
console.log(typeof(parseInt(a))+ '-' + parseInt(a));//number - NaN
var a = '3.99';
console.log(typeof(parseInt(a))+ '-' + parseInt(a));//number - 3
console.log(parseInt('abc111')); //NaN
console.log(parseInt('111abc')); //111
参数
var a = '10';
console.log(parseInt(a,16)); //16,16进制为基础,转化为10进制
var a = 'b';
console.log(parseInt(a,16)); //11,16进制为基础,转化为10进制
parseFloat()
var num = parseFloat('3.1415926');
console.log(num.toFixed(2));//3.14 四舍五入
String()
console.log(typeof(String(123)));//string
console.log(typeof(""+123));//string
toString()
var str = '3.14';
console.log(str.toString(atr));//3.14
var str = undefined;
console.log(str.toString(atr));//报错 undefined没有toString方法
var str = null;
console.log(str.toString(atr));//报错 null没有toString方法
参数
toString(radix)
var str = '100';
console.log(parseInt(str,2));//4
var str = '100';
console.log(parseInt(str,2)).toString(16);//4
Boolean()
console.log(Boolean(1));//true
console.log(Boolean(null));//false
undefined、null、NaN、“”、0、false ->false,其他true
3.4隐式类型转换
var a = '123';
a++;
console.log(a);//124
var a = 'a' + 1;
console.log(a);//a1
*、/、-、%
var a = '3' * 2; //*、/、-、% ->number
console.log(a);//6
>、<、>=、<=
var a = '1' > 2;//>、<、>=、<= ->number
console.log(a);//false
var a = 1 > '2';
console.log(a);//false
var a = 'a' > 'b';//ASCII
console.log(a);//false
var a = 1 == '1';
console.log(a);//true
var a = 1 != '2';
console.log(a);//true
var a = 1 === '1';//不进行隐式转化
console.log(a);//false
var a = NaN == NaN;//NaN不等于任何值
console.log(a);//false
var a = NaN === NaN;
console.log(a);//false
var a = 2 > 1 > 3;
console.log(a);//false
var a = 2 > 1 == 1;
console.log(a);//true
var a = undefined == 0;
console.log(a);//false
var a = undefined > 0;
console.log(a);//false
var a = null == 0;
console.log(a);//false
var a = null > 0;
console.log(a);//false
var a = undefined == null;
console.log(a);//true
var a = undefined === null;
console.log(a);//false
+ -
console.log(+'123');//number 123
console.log(-'123');//number -123
console.log(+'abc');//NaN
console.log(-'abc');//NaN
isNaN()
console.log(isNaN('123'));//false
console.log(isNaN('abc'));//true
console.log(isNaN(null));//false
console.log(isNaN(undefined));//true
日常安排
weekday time am/pm
var weekday = window.prompt('请输入星期几');
var time = window.prompt('请输入上午或下午');
switch(weekday){
case '星期一':
if(time == '上午'){
console.log('看书');
}else if(time == '下午'){
console.log('逛街');
}
break;
}
斐波那契数列 黄金分割数列 兔子数列
1 1 2 3 5 8 13 21
var n = parseInt(window.prompt('请输入第几位'));
var n1 = 1,
n2 = 1,
n3;
if(n <= 0){
console.log('输入错误');
return 0;
}
if(n <= 2){
console.log(1);
return 0;
}
for(var i = 2; i < n; i++){
n3 = n1 + n2;
n1 = n2;
n2 = n3;
}
console.log(n3);