JavaScript基础3.循环、引用值初识、显示及隐式类型转化

3.1循环

for(var i = 0; i < 10; i++){
  console.log(i);
}

步骤

  1. 声明变量i = 0
  2. if(i < 10){
    console.log(i)
    }
  3. i++
  4. 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);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值