1.for循环
for(var i = 0; i < 10; i++){
console.log(i);
}
var i = 0;
for(; i < 10;){
console.log(i);
i++;
}
while(i < 10){
console.log(i);
i++;
}
// 死循环
while(1){
}
// -----------
var i = 1;
for(; i;){
console.log(i);
i++;
if(i == 11){
break; // i = 0; 终止循环
}
}
// 1.从0开始做加法,加到什么时候总和 < 100:
var sum = 0;
for(var i = 0; i < 100; i++){
sum = sum + i;
if(sum > 100){
break;
}
console.log(i, sum);
}
// 2.100以内的数挑出7可以整除的数或者是个位是7的数
// 3.可以被 4, 5, 6整除的数
// 4.打印0-100的数
// ()只能有一句,不能写比较
// {} 不能出现 i++ i--
var i = 100;
for(; i--; ){
console.log(i);
}
// 5.10的n次方
// 6. n的阶乘
// 7.789翻转
// 8.打印三个数中的最大值
// 9.打印 100 以内的质数
// 只能被1和自己本身整除
while
while(i < 10){
console.log(i);
}
do{
会执行一次
}while()
引用值
array 数组
var arr = [1, 2, 3, 4, 5];
// 取值
console.log(arr[1]); // 2
// 赋值
arr[1] = 100;
console.log(arr[1]); // 100
// 遍历数组
arr.length; // 5
for(var i = 0; i < arr.length; i++){
console.log(arr[i]);
}
object 对象
var person = {
name: 'xiaoxiong',
// 属性名/键名 : 属性值/键值,
age: 18,
height: 180,
weight: 140,
job: 'WEB工程师'
}
person.name = 'xiaowang';
typeof
typeof(123);
// number string boolean object undefined function
// object = 引用类型
// bug, 指向空对象的指针
console.log(typeof(null)); // object
console.log(typeof(1 - 1)); // number
console.log(typeof(1 - '1'));// number
console.log(typeof('1' - '1'));// number
console.log(typeof(typeof(a))); // string
console.log(typeof(typeof(123))); // string
显示类型转换
// 1.Number()
var a = '123';
Number('123'); // number-123
var a = '.12';
Number(a); // 0.12
null => 0
undefined => NaN
true => 1
false => 0
[] => 0
{} => NaN
// 2.parseInt 非四舍五入
true => NaN
false => NaN
null => NaN
undefined => NaN
NaN => NaN
console.log(parseInt('10', 16)); // 以16进制进行转换
// 基底范围 2-36
parseInt('abc123'); // NaN
parseInt('123abc23'); // 123
// 3. parseFloat 四舍五入
var num = parseFloat('3.1415926');
num.toFixed(2); // 3.14
var num = parseFloat('3.1492332');
num.toFixed(2); // 3.15
// 4. String
var str = '3.14';
// toString(radix);
console.log(str.toString()); // '3.14'
// undefined, null 报错
({}).toString() => // [object Object]
// 5.Boolean()
// false => undefined, null, NaN, '', 0, false,
隐式类型转换
var a = '123';
a++;
console.log(a); // 124
var a = 1 == '1'; // true
var a = 1 === '1'; // 这个不进行转换 false
// NaN 不和任何相等
var a = NaN == NaN; // false
var a1 = 1 > 2 > 3; // false
var a2 = 3 > 2 == 1; // true
// undefined, null 既不大于0,也不小于0,也不等于0.
// 但是 undefined == null
var a1 = undefined == 0; // false
var a2 = null == 0; // false
var a3 = undefined == null; // true
isNaN()
// Number(值) => NaN => bool
console.log(isNaN(NaN)); // true
console.log(isNaN(123); // false
console.log(isNaN('123')); // false
console.log(isNaN('a')); // true
console.log(isNaN(null)); // false
console.log(isNaN(undefined));// true
斐波那契数列 黄金分隔数列 兔子序列
// 1 1 2 3 5 8 13 21 34
var n1 = 1,
n2 = 1,
n3;