JavaScript基础知识学习笔记(三)

本文详细解析了JavaScript中的var、let和const关键字的特性,以及类型转换(包括数字、字符串和布尔的转换),并介绍了isNaN函数的用法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、var,let,const的区别

1.var

可重复声明,有变量提升,没有块级作用域{}

        var a = 10;
        var a = 20;//变量可重名,不报错
        console.log(b);//undefined,有变量提升,不报错
        var b = 20;

        if (true) {
            var c = 'hello';
            console.log(c);//因为var没有块级作用域,所以if外仍可以访问到if内的c的值
        }
        console.log(c);//hello

2.let

不可重复声明,无变量提升,有块级作用域{}

           let a1 = 100;
        // let a1=200; 不可重名 报错

        //    console.log(b1);
        //    let b1=300;  无变量提升,报错
        // if (true) {
        //     let c1 = 'hello';
        //     console.log(c1);
        // }
        // console.log(c1); 报错,因为有块级作用域,所以无法访问到{}内c1的值。

3.const

声明常量,必须有初值,不能重名,没有提升,有块级作用域,可以声明对象、数组、函数。

        const a2 = 800;
        // a2=900;  error 不能重名
        console.log(a2);
        
        const arr = [30, 40, 50];
        // arr=[50,60,70];  error 不能将数组内的数全部修改,只能一个一个修改
        arr[0] = 500;
        console.log(arr);// 0:500  1:40   2:50  length:3

二、类型转换

1.转数字

(1)Number

   String  Number  Bollen  Null  Undefined

      Number(参数)

        ''(空串) --0 ,  '  '(空格)--0,  '123'(数字)---123,  '123hel'(数字加字母)--NaN, null--0  ,false--0

       //空字符串和空格
        let str = '';
        str = '   '
        str = Number(str);
        console.log(str, typeof str); //0 number

        //数字
        let str1 = '123';
        str1 = Number(str1);
        console.log(str1, typeof str1); //123 number

        //数字加字符串
        let str2 = '123hre';
        str1 = Number(str2);
        console.log(str1, typeof str1); //NaN number

        //布尔
        let flag = true;
        flag = false;
        flag = Number(flag);
        console.log(flag, typeof flag); //0 number

        //null undefined
        let a = null;
        a = Number(a);
        console.log(a, typeof a); //0,number
        
        //未赋值的变量
        let b;
        console.log(Number(b)); //NaN
(2)parseInt、parseFloat

parseInt(参数)  整数,parseFloat(参数)  浮点数(小数),

数字在前可提出来: '123'  '123LL' --123,其他均为NaN。

        let str3 = '123'
        str3 = '123hel'
        str3 = '123.56H'
        console.log(parseFloat(str3));//123.56
        console.log(parseInt(str3));//123
        console.log(parseFloat(''), parseFloat('  '), parseFloat(true), 
        parseFloat('HELLO123'), parseFloat(undefined) );//NaN,NaN,NaN,NaN,NaN
(3)隐式转换

        纯数字的字符串前面打上+,或者乘除1,或者取余:+'123'  '123'*1 '123'/1  '123'%1  '123'-0

        let num = prompt('请输入一个数字:')
        console.log(num, typeof num);
        num=+num;
        console.log(num,typeof num);
        console.log('123'*1+'123'/1+'123'%1);//246

2.转字符串

 (1)强制转换 

   String(参数)   ---所有都能转 ,参数.toString()  --null和Undefined不能

        let num=123;
        num=String(num);
        console.log(num,typeof num);// 123 string


        let a=null;
        a=undefined;
        a=true;
        a=String(a);
        console.log(a,typeof a);// true string

        let num1=789;
        num1=true;
        num1=num1.toString();
        console.log(num1,typeof num1);//true string

        // let a1=null;
        // a1=a1.toString();// error null不能进行转换
        // console.log(a1,typeof a1);
   (2) 隐式转换    

    123 + '' ----  '123'    拼接空串自动转换  

        let b =123;
        b=b+'';
        console.log(b,typeof b);//123 string
3.转布尔

只有6个是假其他全为真,分别是:'' , null, undefined ,0, NaN ,false

真值也有:[],   {},   '  '  ,"   "。

console.log(Boolean(''), Boolean(null), Boolean(undefined), Boolean(0), Boolean(NaN), Boolean(false), );//false false false false false false;
console.log(Boolean([]), Boolean({}), Boolean('  '), Boolean("  "));// true true true true;

三、isNaN

isNaN() 函数用于检查其参数是否是非数字值。如果参数值为 NaN 或字符串、对象、undefined等非数字值则返回 true, 否则返回 false。

    <script>
        console.log(isNaN(NaN)); //true
        console.log(isNaN('')); //0--false
        console.log(isNaN('  ')); //0--false
        console.log(isNaN('123hello')); //123hello--true
        console.log(isNaN('123')); //123--false
        console.log(isNaN(NaN)); //true
        console.log(isNaN({})); //true
        console.log(isNaN(undefined)); //true
    </script>
    <script>
        let num = prompt('请输入一个数字')
        console.log(num);
        /*
        Number()    NaN        '' '  '  null ----0
        parseFloat()    '123'   '123hello'  其他NaN
        
        */
        let a = Number(num) && parseFloat(num);
        console.log(a);
        if (isNaN(NaN)) {
            console.log('不是一个数字');
        } else {
            console.log('是数字')
        }
    </script>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值