js 字符串与数字类型互换的方法

JavaScript037

js 字符串与数字类型互换的方法,第1张

一、字符串转换为数字: 在js读取文本框或者其它表单数据的时候获得的值是字符串类型的,例如两个文本框a和b,如果获得a的value值为11,b的value值为9 ,那么a.value要小于b.value,因为他们都是字符串形式的.所以在比较前需要将它们各自的值转换为Number类型。主要的方法有三种:转换函数、强制类型转换、利用js变量弱类型转换 。 1.转换函数 parseInt() 和 parseFloat()parseInt(str): 将字符串类型转换为 整型 ,当函数的参数不是字符串时,函数返回NaN(Not a Number) parseFloat(str): 将字符串类型转换为 浮点型 ,当函数的参数不是字符串时,函数返回NaN(Not a Number) 注1:凡是一切表示数的形式的字符串都可以通过上面的两个函数转化为数字,例如: 普通的数字 : parseInt('123') // 123  浮点数 :  parseInt('123.45') // 123 十六进制数:parseInt('0x11') // 17 科学计数法: parseInt('3e12') // 3  parseInt('13e12') // 13 注2:parseInt()函数支持十六进制形式的字符串转换为整型,但是 parseFloat()函数不支持十六进制形式的字符串转换为浮点型,但是会返回数字0.原因是parseFloat()函数将参数为十六进制的字符串 "0x11"的第一个字符零(0)看做数字,将其他的忽略。 2.强制类型转换 可使用强制类型转换(type casting)处理转换值的类型。使用强制类型转换可以访问特定的值,即使它是另一种类型的。ECMAScript中可用的3种强制类型转换如下:Boolean(value)——把给定的值转换成Boolean型; Number(value)——把给定的值转换成数字(可以是整数或浮点数); String(value)——把给定的值转换成字符串。用这三个函数之一转换值,将创建一个新值,存放由原始值直接转换成的值。这会造成意想不到的后果。 当要转换的值是至少有一个字符的字符串、非0数字或对象时,Boolean()函数将返回true。如果该值是空字符串、数字0、undefined或null,它将返回false。3. 利用js变量弱类型转换二、数字转换为字符串 强制类型转换、利用js变量弱类型转换 1.强制类型转换: String(value)——把给定的值转换成字符串。2.利用js变量弱类型转换:数字+字符串 // 123+"456"------>"123456"

在实际开发中我们经常需要将对象转为字符串来传递数据,传递完毕后再以对象的方式显示,所以必须掌握相互转换的方法

一、将对象转为字符串:

 let obj = {

        name: "小米10",

        color: '红色',

        size: '1000*200*500',

        price: '2999'

    }

    // 1. 获取对象的两种方式:

    // console.log(obj.name)

    // console.log(obj['name'])

    // 2.遍历对象

    // 2.1  for in  遍历对象

    // for(变量  in  对象){

    // }

    for (let key in obj) { //for in 里面的变量喜欢用key

        console.log(key)// key 变量 输出得到是属性值

        // console.log(obj[k])//得到里面的属性值

        // console.log(k + '--' + obj[k])

    }

    // 2.2  ES6中新增的获取对象的所有属性方法  

    // Object.keys()  返回对象的所有属性名 是个数组

    console.log(Object.keys(obj))//['name', 'color', 'size', 'price']

    Object.keys(obj).forEach(key =>{

            console.log(key + '--' + obj[key])

        })

        // Object.values返回对象的所有属性值 是个数组

    console.log(Object.values(obj))

    console.log('*'.repeat(30))

    // 3.两种方法转换为字符串

    //方法一

    let arr1 = [] //先声明空数组,再将空数组转换为字符串

    for (let key in obj) {

        arr1.push(key + '=' + obj[key]) // 声明空数组接收对象转换后的数组

    }

    console.log(arr1.join('&'))//也可以声明一个字符串去接

    // 方法二

    // 先找到数组里面所有的属性名,然后用map修改属性

    let str2 = Object.keys(obj).map(key =>[key, obj[key]].join('=')).join('&')

    console.log(str2)

二、将字符串转为对象

 let str = 'name=刘德华&age=18&sex=男'

        let obj = {}

        // split将字符串按照指定字符转为数组,forEach再遍历数组

        str.split('&').forEach(r =>{

            let arr = r.split('=')//然后再用split按等号将数组拼成新数组

            obj[arr[0]] = arr[1]//再给对象赋值 arr[0]是属性。arr[1]是值

        })

        console.log(obj)