数据类型转换其它类型转数值类型及运算符

本文详细介绍了JavaScript中将其他类型转换为数值类型的方法,包括Number(), parseInt()和parseFloat()函数,以及各种运算符的使用规则。通过实例代码演示了转换过程,并提供了相关练习,帮助理解不同类型转换为数值类型的重要性和运算符的运用。" 88715363,8247564,使用归并排序计算数组逆序索引对,"['算法', '排序', 'Python', '数组操作', '数据结构']
摘要由CSDN通过智能技术生成

  1. Number();

  2. parseInt();

  3. parseFloat();

  4. 非加法运算 隐式转换

  5. 代码演示
    <script>
           // Number() = > 整体转换
           // parseInt() => 转成整数 一位一位的 
           // parseFloat() => 转成浮点数 一位一位的
           // 非加法运算 =>同Number()
       // var birth = prompt('请输入出生的年份:');
       // // 2022年 
       // var age = 2022-birth; // birth是个字符串 
       // // 2022-Number(birth)
       // // 2022是数值  减去birth 自动的把birth转成数值类型
   
       // console.log('您今年'+age+'岁了!');
   
       // 隐式转换 
   
       var num1 = prompt('请输入第一个小数');  
       var num2 = prompt('请输入第二个小数');
   
       console.log('结果是:'+(parseFloat(num1)+parseFloat(num2)));
   
       // 确定转成整数还是小数  

   </script>
​
   
​

Number()

语法: Number(你要转换的数据); 结果: 转换好的数值数据 转换规则: 1.把转的内容当做一个整体来看待 2. 如果整体能转成一个合法的数字 那么就能转成数值 3. 如果其中一个不能转成合法的数字 那么最后的结果是 NaN 4. true => 1 5. false=> 0 6. 认. Number('100.567') => 100.567

    // // 1. Number()  函数
​
    // var text = '100a'; // 当做一个整体来看到 
    // // 整体中有一个不能转成数字  整体结果就是NaN 
    // console.log(text);
    // console.log(typeof text);
​
    // var res = Number(text);
    // console.log(res); // NaN '1' 1 '0' 0 '0' 0 'a' 不能转成一个数字
​
    // console.log(typeof res);

parseInt() 语法: parseInt(你要转换的数据); 结果: 转换好的数值类型数据 规则: 1.不管转换的是什么数据,都是一位一位的看待 2.如果第一位 不能转成合法的数字 那直接输出NaN 停止转换 3.如果第一位可以那么保留这个数字,那么继续向后转换 4. 以此类推直到不能转换或者结束

注意事项:
    不认识小数点 
    true 不能转成1  => NaN
    false 不能转成 0  => NaN
    
    var num1 = '1000.5adf3';
    console.log(num1);
    console.log(typeof num1);
    console.log('-----------------');
​
    var res = parseInt(num1);
    console.log(res); // 1000 不认识小数点所以它停止了  
    console.log(typeof res);
    console.log(parseInt(true)); // NaN
    console.log(parseInt(false));// NaN

parseFloat()

语法: parseFloat(你要转换的数据); 结果: 转换好的数值类型数据 规则: 1.不管转换的是什么数据,都是一位一位的看待 2.如果第一位 不能转成合法的数字 那直接输出NaN 停止转换 3.如果第一位可以那么保留这个数字,那么继续向后转换 4. 以此类推直到不能转换或者结束

注意事项:
    认识小数点 
    true 不能转成1  => NaN
    false 不能转成 0  => NaN

​ //parseFloat() ​ var num1 = '100.456abc'; console.log(num1); console.log(typeof num1);

    var res = parseFloat(num1);
    console.log(res); // 100.456
    console.log(typeof res); // number 

// 非加法数学运算转成 数值类型

// 转换规则跟 Number()是一样一样的 // 当做一个整体来看到 整体中如果有一个不能转成数值 那么结果就是NaN

练习

//输入一个出生的年份 // 输出 今年多少岁

//计算器

// 第一个数 第二个数都是小数 // 得到正确的结果

​
# 其他类型转字符串
​
​
​
1. String()
​
2. toString()
​
3. 字符串拼接
​
4. ```
   代码展示
   <script>
           // var num = null;
           // console.log(num);
           // console.log(typeof num);
   
           // var res = String(num);
           // console.log(res);
           // console.log(typeof res);
   
   
           // var num = 0xabc;
           // console.log(num);
           // console.log(typeof num);
   
           // var res = num.toString();
           // console.log(res);
           // console.log(typeof res);
   
           // console.log(1+2+3+6);
           // console.log(1+'2'+3+6);// 1236
           console.log(1+'2'-3+6);
           // 1   字符串12
           // 12 - 3 9
           // 9 + 6 = > 15
           
   
       </script>

String()
    语法:
        String(你要转换的数据) 
    结果:
        转换好的字符串数据 
    重点:
        任意类型都能转 
        
        var num = null; // undefined null 100 100.5 0xabc 都能转
        console.log(num);
        console.log(typeof num);
​
        var res = String(num);
        console.log(res);
        console.log(typeof res);
toString()
    语法:
        你要转换的数据.toString()
    结果:
        转换好的字符串数据 
    重点:
        不能转undefined和null 
        直接报错  
        
        
字符串拼接 
    + 左边只要有一个是字符串 最后的结果就是字符串
    + 两边都是数值或者bool类型的时候 才进行数学运算 
        

其他类型转布尔类型重点

后边会经常用来对数据进行判断

代码展示
<script>
     console.log(Boolean(NaN));
     console.log(Boolean(0));
     console.log(Boolean(0.0));
     console.log(Boolean(false));
     console.log(Boolean(''));
     console.log(Boolean(""));
     console.log(Boolean(``));
     console.log(Boolean(undefined));
     console.log(Boolean(null));
​
     // ''
     // ' ' => 这个不是空字符串 有一个空格
     // 空字符串是真空的 
     // 空格也是内容 ' ' 是非空字符串 
​
​
     console.log(Boolean(-1));
     console.log(Boolean(0.00000000001));
     console.log(Boolean('0'));
​
​
​
 </script>

Boolean();
语法:
    Boolean(要转换的数据);
结果:
    转换好的布尔类型数据  true  false 
​
数值 字符串 布尔  undefined  null  复杂数据类型 
​
js中转成false的情况  其它都是true
​
    NaN => false 
    0 0.0 => false 
    '' "" `` => false 
    undefined => false
    null => false 
    false => false 
    
    

运算符

算数运算符

代码展示

 <script>
        /* var num1 = prompt('请输入第一个数字');
        var num2 = prompt('请输入第二个数字');
        // 上面得到的结果是两个字符串  
        // 将上面转成数值类型  
        num1 = parseInt(num1);
        num2 = parseInt(num2);
​
        console.log('和:'+(num1+num2));
        console.log('差:'+(num1-num2));
        console.log('积:'+(num1*num2));
        console.log('商:'+(num1/num2));
        console.log('余数:'+(num1%num2));
        console.log('幂:'+(num1**num2));
 */ 
​
        // 6789秒
        // 多少小时  多少分钟  多少秒 
        // 1小时 3600秒 
        // 1分钟 60秒 
        
        // 小时  6789 有多少个3600 秒 => 小时 
        // 剩下的  有多少个60秒 => 分钟
        // 不足60秒 => 秒 
​
​
        // var times = 6789;
        // // times / 3600  => 得到一个小数  
        // var hour = parseInt(times / 3600)  // 整数 
        // var minute = parseInt(times % 3600 / 60); // 分钟  
        // var second =times % 60;
​
        // console.log(`${hour}小时${minute}分钟${second}秒`)
​
​
        var num1 = 357;
        // 提取百位 十位  个位  
​
        // 有几个100 => 百位就是几
        // 小于十的部分 => 个位 
        // 有几个一百  拿走以后 剩下的部分  有几个十  => 十位 
​
​
        var bai = parseInt(num1 / 100) ; // 3.57 我们要的是3 不要.57
        var ge = num1 % 10; // 7 小于10的部分  
        var shi = parseInt(num1 % 100 / 10);
​
        console.log(`${bai}百${shi}十${ge}个`)
    </script>

+
    两边都是 数字 或者 布尔类型的时候 才进行数学运算 
    只要左右有一个是字符串 那么+就进行字符串拼接  
​
-
​
*
​
/    商 
​
%   10 / 3 = 3 ... 1  被除数 /  除数 = 商 ... 余数   
    只要余数  不要商  
​
** 
    6 ** 2   底数 ** 指数  

字面量\ 标识符\表达式\ 返回值

10 100 true 就是字面量

变量名称 函数名称 标识符

数字 运算符 变量 的组合 => 表达式

返回值 得到的结果

赋值运算符

代码展示

<script>
        // var fruit = 'apple';
        // // fruit = fruit + 'banana';
        // // console.log(fruit);
        // fruit += 'banana'; // fruit = fruit + 'banana';
        // console.log(fruit);
​
​
        var num1 = 200;
        // num1 = num1 - 50;
        // console.log(num1); // 150 
​
        // num1 -= 50; // num1 = num1 - 50;
        // console.log(num1);
​
        num1 *= 50; // num1 = num1 * 50;
        num1 /= 50; // num1 = num1 / 50;
        num1 %= 50; // num1 = num1 % 50;
        num1 **= 3; // num1 = num1 ** 3;
​
        
    </script>

var 变量名 = 值; // 把值放到指定名字的空箱子中  这个过程就叫赋值  
​
= 就是赋值符号  
右边的内容给到左边的箱子中 
​
+=
-=
*=
/=
%=
**= 

比较运算符

结果一定是布尔类型

代码展示

 <script>
        // alert(10>5);
        // alert(10>=5);
        // alert(5<9);
        // alert(5<=9);
​
        // js中一个值 包含两部分 
        // 1.值 2.类型 
        // 10  值 10 类型是 Number 
​
        // alert(123 == '123'); // true
        // // 123 值 123  类型 Number
        // // '123' 值 123 类型 String
        // alert(123 === '123');// false
        // // === 必须值和类型都相等才是true 
​
​
        // undefined \null  
        // NaN 
​
        // // undefined 是从null 派生出来的  两个等号是true
        // console.log(undefined == null); // true 
        // // 因为类型不一致  所以三个等号 是false
        // console.log(undefined === null); // false
​
​
        // console.log(1 == true); // true
        // console.log(0 == false); // true
        
        // console.log(1 === true); //false
        // console.log(0 === false);// false
​
​
​
        // console.log(NaN == NaN); 
​
        // NaN 不等于任何值 包括NaN
​
        console.log(NaN !== NaN); // true
​
    </script>

>  
>=
<
<=
==
===
!= 
!==
​
​
=
==
=== 的区别 ?
​
= 赋值 
== 判断值是否相等  
=== 判断值和类型是否都相等 

逻辑运算符

代码展示

  <script>
        // 比较运算符的结果一定是布尔类型?
        // 逻辑运算符的结果一定是布尔类型? 不一定 
​
        // && 
​
        // console.log(5>4 && 26>7); // true  两边都是true 结果true
        // console.log(7>6 && 8>9); // fale 两边有一个是false 结果false
​
        // ||
        // console.log(5>4 || 26<7); // true 两边有一个是true 结果true
        // console.log(5<1 || 6>7); // false 两边都是false 结果false
​
        // !
        // console.log(!1>10); // 0>10 false  
        // console.log(!(1>10)); // true
​
​
​
        // 其它类型转换成布尔类型
​
        // NAN  undefined null 0 '' "" '' 0.0 false  => false
​
        // 逻辑 && 如果不是表达式 
        // 会隐士转成布尔类型
        // 如果左右都是true 那么输出最右边的值 
        // console.log(123 && 456.5 && true && 'helloworld'); // helloworld
        // // 如果从左往右走的过程中 遇到false 那就停止向右
        // // 输入转为false的值  
        // console.log(123 && 456.6 && 0.0 && 'helloworld'); // 0 
​
​
        
        // 逻辑 || 如果不是表达式
        // 会隐士转成布尔类型
        // 如果遇到true 停止向右走 输出为true的值 
        // 如果都是false 那么输出最右边的值 
        // console.log('hello' || 456.6 || 789 || true || 'haha'); // hello    
        // console.log('' || 0.0 || NaN || false || 0);
​
​
​
        // 短路运算  
​
​
        // && 
        // 遇到false 停止向右走 输出false的值
​
        // console.log('hello world' && 123 && 0 && 'haha');// 0
        // // ||
        // // 遇到true 停止向右走 输出true的值
        // console.log('' || 123 || 0 || 'haha'); // 123
​
​
        // 注册用户 
​
        // 用户名必须是 6-30位 并且 不能为空  
​
        // var username = prompt('请输入用户名:');
        // 字符串的长度 length
        // console.log(username !== ''&& username.length>=6 && username.length<=30);
        // js不支持传递判断
        //6<=username.length <=30
        //6<=username.length 为true 后边就不判断了  
        // 范围的判断 应用上边的判断方式
        // 6<=username.length && username.length<=30  
        // console.log(username !=='' && 6<=username.length <=30);
    </script>
找对象  
​
文艺青年 找女朋友 
    长的漂亮  并且 各自175cm以上 并且皮肤白 并且 腿长 并且眼睛大 孝顺
    有一个不满足  pass掉 
    
躺平青年 找女朋友 
    长的漂亮 或者 个子175cm 或者 皮肤白  或者 腿长  或者 眼睛大 或者 女的 或者孝顺 
    满足其中一个条件就可以 
    都不满足 pass掉 
    
​
&&   and  并且 
||   or   或者
!    取反  true -> false false->true  
​
​
&& 并且  and 
    符号两边的结果都是true 最终的结果位true
    符号两边有一个是false 结果就是false  
    同真为真,一假则假 
    
    短路运算:
        从左往右 左边为true 才会继续执行右边的 
        如果左边为false 那么就停止向右  
    
|| 或者  or 
    符号两边的结果都是false 最终的结果位false
    符号两边有一个是true 结果就是true 
    一真则真,同假为假  
    
    短路运算
    左边为false 继续往右走  
    如果左边为true 那么就停止向右  
    
!  not 
true => false
false => true  
​
​
bmi 
​
让用户输入体重kg 和身高 m 
如果 体重 / 身高的平方  结果在 18.5 -23.9之间  身材就是标准的  
​
测试你的身材是否标准  

自增自减运算符

代码展示

  <script>
        // ++ 
        /* 
            前置 ++ 在前面 变量在后边 
            后置 变量在前面 ++在后边
​
            共同点:
                只要执行了 
                一定会让改变的值改变(+1)
            区别:
                ++num
                前置 ++  
                    先把变量本身的值改变+1 用改变后的值参与运算
​
                num++ 
                后置 ++
                    先把变量本身的值参与运算 然后自身的值再改变(+1)
​
​
        
        */
​
​
​
        //--
​
        // 
        /* 
            --num
            前置 -- 在前面 变量在后边 
            num -- 
            后置 变量在前面 --在后边
​
            共同点:
                只要执行了 
                一定会让改变的值改变(-1)
            区别:
                --num
                前置 --  
                    先把变量本身的值改变-1 用改变后的值参与运算
​
                num-- 
                后置 --
                    先把变量本身的值参与运算 然后自身的值再改变(-1)
​
        
        
        
        */
​
​
        // var num = 10; 
​
    //     var res = num++ + ++num;
    //     console.log(res); 
    //     console.log(num); 
​
    // --num2 先减一 再参与运算
    // num2-- 先参与运算 再减一 
    
    var num2 = 10;
    var res2 = --num2 + num2-- - --num2;
    console.log(res2);
    console.log(num2);
    // </script>
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值