3-3 循环、引用值初始、显示及隐式类型转换

1. 循环

  1. for循环的三个参数abc,a只执行一次,c在每次循环后执行
    3-3 循环、引用值初始、显示及隐式类型转换_第1张图片
    3-3 循环、引用值初始、显示及隐式类型转换_第2张图片
    3-3 循环、引用值初始、显示及隐式类型转换_第3张图片
    3-3 循环、引用值初始、显示及隐式类型转换_第4张图片
    3-3 循环、引用值初始、显示及隐式类型转换_第5张图片
    3-3 循环、引用值初始、显示及隐式类型转换_第6张图片
    3-3 循环、引用值初始、显示及隐式类型转换_第7张图片
// 打印0-100的质数 1不是质数
var list = [2]
for (var i = 3; i <= 100; i = i + 2) {
     
    var flag = false
    for (var j = 0; j < list.length; j++) {
     
        var cur = list[j]
        if (i % cur === 0 && cur !== i && cur !== 1) {
     
            flag = true
            break
        }
    }
    if (!flag) {
     
        list.push(i)
    }
}
console.log(list)

3-3 循环、引用值初始、显示及隐式类型转换_第8张图片

2. 引用值

typeof(123) // 建议该种写法:typeof是js内置的方法
typeof 123
typeof(数组、正则、对象、Date、基本包装类) // object
typeof(console.log) // function
typeof(1-1) // number
typeof(1-'1') // number
typeof('1'-'1') // number
typeof(typeof(原始类型/引用类型/函数)) // string
typeof(+) // 报错

3. 显示类型转换

// Number目的要转换成数字
Number(null) // 0
Number(undefined) // NaN
Number('1a') // NaN
Number(true) // 1
// parseInt目的要转换成整型
parseInt(true) // NaN
parseInt(undefined) // NaN
parseInt(null) // NaN
parseInt('1a') // 1 从第一位开始看,不是数字就是放弃
parseInt('a1') // NaN
parseInt('1a1') // 1
// 十六进制 0123456789abcdef 10 11 12 13 14 15 16 17 18 19 1a
// 二进制 0 1 10 11 100 101 110 111
parseInt(10,radix) // 以radix为基数转换成十进制 radix-1 转换结果→16
// radix取值范围在2-36
parseInt('a',16) // 10
parseInt(10,16) // 16
parseInt(11,16) // 17
parseInt('1a',16) // 26

parseFloat('1a') // 1 从第一位开始看,不是数字就是放弃
parseFloat('a1') // NaN
// 数字类型的toFixed()方法是四舍五入的

String(null) // 'null'
String(undefined) // 'undefined'
null.toString() // 报错 Uncaught TypeError: Cannot read property 'toString' of null
undefined.toString() // 报错 null和undefined没有toString方法
toString(radix) // 要转成几进制
var a = 11 // 先声明一个数字类型的变量再调用
// 不要直接11.toString Uncaught SyntaxError: Invalid or unexpected token
a.toString(16) // b

4. 隐式类型转换

var a = '123'
console.log(++a) // 124
+a // 123
-a // -123
var a = '123'
console.log(a++) // 123

Number的隐式类型转换要和Boolean false的6个值区分开

// undefined、null既不大于也不小于、等于0 ?他们和数字比较时不会做Number转换
undefined > 0 // false
undefined < 0 // false
undefined == 0 // false
null > 0 // false
null < 0 // false
null == 0 // false
null == undefined // true
null === undefined // false

isNaN('a') // true
斐波那契数列:只知道前两项 1 1 ,其后每项为前两项之和
var n = 10
// 1 1 2 3 5 01 12 23 8 13 21
var list = [1, 1]
for (var i = 0; i < n - 2; i++) {
     
    var newVal = list[i] + list[i + 1]
    list.push(newVal)
}
console.log(list, list[n - 1])
  • 不使用数组,用移位的思想
  • window.prompt的返回值是字符串
    3-3 循环、引用值初始、显示及隐式类型转换_第9张图片

你可能感兴趣的:(全修班)