JavaScript 笔记 Day 02 数据类型 流程语句

Day 02     数据类型 流程语句


一.数据类型
字符串string
数值型number
布尔型boolean
undefined  未定义型
null
object

1.数值型number

1.if(){
        }else if(){

        }else if(){ 

        }else(){

}

string  字符串
typeof 检查输出类型
+加号 可以运算也可以进行字符串拼接

2.类型转换
(1)隐式类型转换:自动将数据从一种数据类型转到另一种数据类型的过程
  console.log("50"-"30")  //20
(2)显示类型转换(强制类型转换)   需要手动转换到目标类型
        将其他数据类型转换为数值类型
        Number()

         paresInt()  其他类新转换成整型  
                console.log(parseInt(12.15));//12
                console.log(parseInt(023))//19   八进制转十进制
                          
        parseFloat()  转换成浮点数  

NaN :not a  number  非数值 
    表示一个本来要返回数值的操作数,而没有返回数值的情况.
    NaN 

(3)进制转换
  1.其他进制转换为十进制
  paresInt(25,16) 16进制
  paresInt(25,8)  8进制
  paresInt(25,10)  10进制  25
  paresInt(101,2) 2进制
  2. 十进制转换为其他进制
 v1=23
        v1.toString(16)
        v1.toString(8)
        v1.toString(2)
        v1.toString(10)

进制转换:

整型有4种进制形式:
1.十进制: 都是以0-9这九个数字组成,不能以0开头。
2.二进制: 由0和1两个数字组成。
3.八进制: 由0-7数字组成,为了区分与其他进制的数字区别,开头都是以0开始。
4.十六进制:由0-9和A-F组成。为了区分于其他数字的区别,开头都是以0x开始。

3.常用方法
isNaN()  判断是是否为非数值
isFinite() 是否是正负无穷
    isFinite(200e500)  //false
    isFinite(200e5)  //true

isNaN()  
1.任何涉及NaN的操作,都返回NaN
      NaN/8
      NaN+8
      NaN-8
      NaN*8
2. NaN与任何值都不相等 包括他本身
      NaN== NaN  //false 

4.常见的面试题

console.log(null*5)

null*5   //0
NaN*3     //NaN
undefined*5    //NaN  隐形类型转换
"hello"*5    //NaN
"23"+5     //235
"23"*5     //115

6.布尔型  boolean()
true  false  小写
  if(!10>5){
            alert("a")
        }else{
            alert("b")
        }

类型转换
boolean()

Boolean(23)   
Boolean(0)
Boolean("hello")
Boolean("")
Boolean(null)
Boolean(undefined)

             true       false
数值型        非空         0 
字符型        非空串       ""
undefiend    返回false   
null         返回false
object       任意对象返回的都是true
      

7.undefined类型
 (1)变量值声明,未赋值
       var a
        typeof(a)   //undefined
        alert(a)    //undefined
        alert(c)    //报错
(2)函数没有返回值时,默认返回undefined
   function f1(){
               alert("hello")
           }

           var r=f1()
           console.log(r)
(3)调用函数时,应该提供参数,但没有提供,该参数返回undefined
function f1 (a,b){
            alert(a)
            alert(b)
            alert("hello")
        }
        f1(3)
        console.log(r);

8.null空类型

  var a=null
        typeof(a)//object

        var b={}
        b.a=23
        b.f1=function(){}
        b=null
        if(b==null){}

9.object对象类型
对象就是一定属性和方法的封装体,通过对象能够引用到这些方法和属性

10.  typeof()  
(1)数值类型,typeof返回 number
       typeof(1)         //number
       typeof(NaN)       //number
       typeof(Number.MAX_VALUE)  //number
       typeof(Number.MIN_VALUE)   //number
       typeof(Infinity)    //number
(2)字符串类型,typeof返回 String
    typeof("123")  string

(3)布尔类型,typeof返回,   boolean
      typeof(true)        //boolean

(4)对象,数组,null,typeof返回object    
        typeof(window)      //object
        typeof(document)    //object
        typeof(null)        //object
        typeof(Math)        //object
        typeof([])          //object
(5)函数类型,typeof返回function
   function f1(){}
   typeof(f1)
   type(Date)  function
   typeof(eval)

(6)未定义变量或undefined,typeof返回 undefined


二.流程控制语句

1、 if(){
    }else if(){

    }else{

    }

2.流程控制语句
  switch(){
    case:语句体;break;
    case:语句体;break;
    case:语句体;break;
    default 语句体
  }
3.for循环
    for(var i=0;i<=5;i++){
        语句体
    }
    //for in /for each
4.while循环
5.do while至少执行一次
6.break:立即跳出循环,结束所有循环
  continue:停止当前循环,进入下一次循环


练习题:

//+加号 可以运算也可以进行字符串拼接

            // console.log("50"+"30")  //5030

            // console.log("50"-"30")  //20

            // console.log(Number("50")+Number("30"));

//             console.log(Number(12)); //12

// console.log(Number("23"));//23

//  console.log( Number("hello"))//NaN

//  console.log( Number("23aa"))//NaN

//  console.log(Number(true))//1

//  console.log(Number(false))//0

//  console.log(Number(""))//0

// console.log(Number(0x56))//86

//  console.log(Number("0x56"))//86

// console.log(Number(023))//19

//  console.log(Number("023"))//23

//  console.log(Number(00023))//19

//  console.log(Number("00023"))//23

// console.log(Number("30e5"))//3000000

// console.log(Number(null))//0

// console.log(Number(undefined))//NaN

//  console.log(Number(NaN))//NaN

//  console.log(parseInt(12))//12

//  console.log(parseInt(12.34))//12

//  console.log(parseInt(0.12))//0

//  console.log(parseInt("23"))//NaN

//  console.log(parseInt("hello"))//NaN

//  console.log(parseInt("23aa"))//23

//  console.log(parseInt(true))//NaN

//  console.log(parseInt(false))//NaN

// console.log(parseInt(""))//NaN

// console.log(parseInt("0x56"))//86

//  console.log(parseInt(023))//19

// console.log(parseInt(00023))//19

// console.log(parseInt("30e5"))//30

// console.log(parseInt(25,16))//37   16是16进制

//  console.log(parseInt(25,8))//21    8是八进制

//  console.log(parseInt(1001,2))//9    2是2进制

// console.log(parseInt(25,10))//25    10是十进制

//  console.log(parseFloat("23.34"))//23.34

//  console.log(parseFloat("23.45.78"))//23.45


 

// console.log(v1=23) //23

//  console.log(v1.toString(16))  //17

//  console.log(v1.toString(8))  //27

//  console.log(v1.toString(2))  //10111

//  console.log(v1.toString(10))  //23

// isFinite(200e500)  //false

// isFinite(200e5)  //true

//判断是是否为非数值

      isNaN("hello")  //true

      isNaN(true)  //false

      isNaN(false)//false

      isNaN("10")   //false  "10"是字符串

      console.log(isNaN("10")  )

       

     // 1.任何涉及NaN的操作,都返回NaN

      NaN/8

      NaN+8

      NaN-8

      NaN*8

    //   2. NaN与任何值都不相等 包括他本身

      NaN== NaN  //false

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值