8.前端JavaScript之数据类型

目录

 1.数值类型(number)

2.字符类型(string)

3.布尔值(boolean)

4.null与undefined

5.数组(object)

6.自定义对象(object)【{}】

7.内置对象(object)【日期,json,RegExp,math】


 1.数值类型(number)

1.无论是整型或浮点型都是number型
    var a = 11;
    var b = 11.11;
    typeof(a)               //number
    typeof(b)               //number

2.特殊的 NaN:数值类型 表示的意思是“不是一个数字” NOT A NUMBER

3.数据类型转换
    parseInt()      //转整型
    parseFloat()    //转浮点型
        (1).parseInt('12312312')              //12312312
        (2).parseFloat('11.11')               //11.11
        (3).parseInt('11.11')                 //11    浮点转整型取整数
        (4).parseInt('123sdasdajs2312dasd')   //123   只取字符串开头整型
        (5).parseInt('as123saajs2312dad')     //NaN

2.字符类型(string)

1.定义
    var s = 'wsx'       //string
    var s1 = "wsx"      //string
    var s2 = '''lzr'''  // 不支持三引号,错误VM665:1 Uncaught SyntaxError: Unexpected string
    var s3 = `
            asdkajsd
            sdjkladj
            asdjlajdkl
            `           //string 模版字符串 定义多行

2.补充``用处
    模版字符串除了可以定义多行文本之外还可以实现格式化字符串操作
    即;在书写${} 会自动去前面找大括号里面的变量名对应的值 如果没有定义直接报错
    如:
        var name = 'wsx'
        var age = 18
        var sss = `my name is ${name} and my age is ${age}`   //my name is wsx and my age is 18

3.字符串的拼接:
    在python中不推荐你使用+做拼接,用join
    在js中推荐直接使用+做拼接 name + age

4.string的内置方法
    (1).length	            //返回长度,类似python中len()
    (2).trim()	            //移除空白,类似python中strip(),不同点:不能像strip()指定移除特殊符号,.trim('$')错误
    (3).trimLeft()	        //移除左边的空白,类似python中lstrip()
    (4).trimRight()	        //移除右边的空白,类似python中rstrip()
    (5).charAt(n)	        //返回第n个字符,类似python中索引找字符
    (6).indexOf(string)	    //子序列位置,类似python中index(),.indexOf(string)多个字符时,返回第一个字符索引
    (7).substring(from, to) //根据索引获取子序列,类似python中的切片(但不能识别负数,不常用)
    (8).slice(start, end)	        //切片,类似python中的切片(可以识别负数,常用)
    (9).toLowerCase()	            //小写,类似python中的lower()
    (10).toUpperCase()	            //大写,类似python中的unper()
    (11).split(delimiter, limit)    //分割,类似python中的split()
                                    //       相同点:split('|'),都是以|做分隔符分割成列表
                                    //       不同点:split('|',2),在python中是切够2个后,后面全部为一个字符(打印3个)
                                    //              在js中,切完,只取前2个即可(打印2个)

    (12).concat(value, ...)         //拼接,类似python中join,mysql中concat/concat_ws/group_concat
                                    //       相同点:join与concat(value, ...)都可以完成字符拼接
                                    //       不同点:join不可以将数值型拼接到字符串后面
                                    //              js可以将数值型拼接到字符串后面,js会默认把数值型转为字符型再拼接
                                    var name1 = 11;
                                    var name2 = 'df';
                                    name2.concat(name1)  //'df11' js是弱类型(内部会自动转换成相同的数据类型做操作)

3.布尔值(boolean)

1.在python中布尔值是首字母大写的
    True
    False
2.在js中布尔值是全小写的
    true
    false
3.布尔值是false的有
    空字符串、0、null、undefined、NaN

4.null与undefined

1.null
    表示值为空 一般都是指定或者清空一个变量时使用
        name = 'wsx'
        name = null             //指向空,此时是有值,值为null

2.undefined
    表示声明了一个变量 但是没有做初始化操作(没有给值),此时还没有值
    函数没有指定返回值的时候 返回的也是undefined

3.用jason话记忆:厕所纸巾

5.数组(object)

1.数组类似python的列表
    var l1 = [11,22,33,44,55]
    typeof(l1)                       //object
    var l2 = [11,'sdasd',11.11,true]
    l1[1]                            //"sdasd"
    l1[-1]                           //不支持负数索引


2.数组基本内置方法:
    (1).length                //返回长度, 类似python中len()
    (2).push(ele)             //尾部添加元素,联想python中append(),extend(),insert()
    (3).pop()                 //获取尾部元素(移除),类似python中pop(index),remove(targt),del
    (4).unshift(ele)          //头部插入元素,类似python中insert(0,元素)
    (5).shift(ele)            //移除头部元素 
    (6).slice(start,end)      //切片,类似python中的切片(可以识别负数)
    (7).reverse()             //反转,类似python中的[::-1]
    (8).join(seq)             //将数组元素拼接成字符串,类似python中join()写法相反,用法一致
    (9).concat(val,...)       //连接数组,类似python中extend
    (10).sort()               //排序


3.重要内置方法
    (1).forEach():将数组每一个函数传递给回调函数,传(函数,数组)
        用法(最多传三个参数):
            var ll = [111,222,333,444,555,666]
            a.函数传一个参数,返回数组里面每一个元素对象
                ll.forEach(function(value){console.log(value)},ll)
                    返回结果 111
                            222
                            333
                            444
                            555
                            666
            b.函数传两个参数就返回元素 + 元素索引
                ll.forEach(function(value,index){console.log(value,index)},ll)
                    返回结果 111 0
                            222 1
                            333 2
                            444 3
                            555 4
                            666 5
            c.函数传三个参数就返回元素 + 元素索引 + 元素的数据来源
                ll.forEach(function(value,index,arr){console.log(value,index,arr)},ll)
                    返回结果111 0 (6) [111, 222, 333, 444, 555, 666]
                            222 1 (6) [111, 222, 333, 444, 555, 666]
                            333 2 (6) [111, 222, 333, 444, 555, 666]
                            444 3 (6) [111, 222, 333, 444, 555, 666]
                            555 4 (6) [111, 222, 333, 444, 555, 666]
                            666 5 (6) [111, 222, 333, 444, 555, 666]

    (2).splice():删除元素,并可以向数组添加新元素
        a.传两个参数,第一个是起始位置 第二个是删除的个数,则连续删除区域
            ll = [111, 222, 333, 444, 555, 666]
            ll.splice(0,3)
                返回结果: [444, 555, 666]
        b.传三个参数,第一个是起始位置 第二个是删除的个数,第三个是在删除区域添加新的元素/数组(先删除后添加)
            ll = [111, 222, 333, 444, 555, 666]
            ll.splice(0,1,777)
                返回结果:[777, 555, 666]

    (3).map():返回一个数组元素调用函数处理后的值的新数组
        var l1 = [11,22,33,44,55,66]
        a.传一个参数(类似forEach())
            l1.map(function(value){console.log(value)},l1)
                打印结果11
                        22
                        33
                        44
                        55
                        66
        b.传两个参数(类似python的map)
            l1.map(function(value,index){return value*2},l1)
                打印结果[22, 44, 66, 88, 110, 132]
        c.传三个参数()
            l1.map(function(value,index,arr){return value*2},l1)
                打印结果[22, 44, 66, 88, 110, 132]

6.自定义对象(object)【{}】

对象~自定义对象(类似python的{})
js中的自定义对象要比python里面的字典操作起来更加的方便
1.第一种创建自定义对象的方式 {}
    (1).定义
        var d = {'name':'wsx','age':18}
        typeof d                        // "object"
    (2).取值方法
        d['name']                       // "wsx"    js没有get()取值方法
        d.name                          // 比python从字典获取值更加的方便   用点.取值
    (3).支持for循环,获取是键
        for(let i in d){
            console.log(i,d[i])
        }                               //name wsx      age 18

2.第二种创建自定义对象的方式  需要使用关键字 new
    (1).定义
        var d2 = new Object()           //类似python创建空{}
    (2).往自定义对象加值,用点.=或[]=
        d2.name = 'wsx'
        d2['age'] = 18                  
        d2                              // {name: "wsx ", age: 18}

7.内置对象(object)【日期,json,RegExp,math】

1.对象~内置时间(日期)对象new Date()
    (1)创建时间对象:let d3 = new Date()
                  //Mon Nov 15 2021 15:08:48 GMT+0800 (中国标准时间)  类似python结构化时间
       转换格式化时间:d3.toLocaleString()
                  //'2021/11/15 下午3:08:48'
    (2)手动输入时间
        let d4 = new Date('2200/11/11 11:11:11')
        d4.toLocaleString()            //格式化
    (3)手动逗号方式输入时间
        let d5 = new Date(1111,11,11,11,11,11)
        d5.toLocaleString()
                  // "1111/12/11 上午11:11:11"     月份从0开始0-11月
    (4)时间对象其他具体方法
        let d6 = new Date();
        d6.getDate()            //获取日
        d6.getDay()		        //获取星期
        d6.getMonth()		    //获取月份(0-11)
        d6.getFullYear()		//获取完整的年份
        d6.getHours()			//获取小时
        d6.getMinutes()		    //获取分钟
        d6.getSeconds()		    //获取秒
        d6.getMilliseconds()    //获取毫秒
        d6.getTime()			//时间戳


2.对象~内置json对象
    (1)json 在不同语言中都有,用于识别不同语言的数据交互(序列化成共通认识)
    (2)在python中序列化反序列化
        dumps() 		        //序列化
        loads()		            //反序列化
    (3)在js中也有序列化反序列化
        JSON.stringify()		//序列化
        JSON.parse()			//反序列化
    (4)用法:
        let d7 = {'name':'wsx','age':18}
        序列化:
            let res8 = JSON.stringify(d7)   //结果:"{"name":"wsx","age":18}"
        反序列化:
            JSON.parse(res8)                //结果:{name: "jason", age: 18}


3.对象~内置RegExp对象
    (1)在python中如果需要使用正则 需要借助于re模块
       在js中需要你创建正则对象
    (2)创建正则对象
        a.let reg1 = new RegExp('匹配内容')
        b.let reg2 = /匹配内容/
    (3)匹配内容
        ^[a-zA-Z][a-zA-Z0-9]{5,11}:字母开头,后面为5-11位的数字或字母
        let reg1 = new RegExp('^[a-zA-Z][a-zA-Z0-9]{5,11}')
        let reg2 = /^[a-zA-Z][a-zA-Z0-9]{5,11}/
        匹配内容:
            reg1.test('pythonnice')             //true
            reg2.test('pythonnice')             //true
    (4)补充:
        a.取值默认只取一个,取全部要全局模式.match(//g)
            例如.match(/s/g)                    //取全部s
        b.全局模式有一个lastIndex属性,匹配相同内容时,遇到false指针回到头部
            匹配一次true后,指针在最后位置
            再匹配相同内容时,返回false,,指针回到头部
            还匹配相同内容时,返回true
        c.reg.test():匹配内容不写,默位undefinde


4.对象~内置math对象
    abs(x)      //返回数的绝对值。
    exp(x)      //返回 e 的指数。
    floor(x)    //对数进行下舍入。
    log(x)      //返回数的自然对数(底为e)。
    max(x,y)    //返回 x 和 y 中的最高值。
    min(x,y)    //返回 x 和 y 中的最低值。
    pow(x,y)    //返回 x 的 y 次幂。
    random()    //返回 0 ~ 1 之间的随机数。
    round(x)    //把数四舍五入为最接近的整数。
    sin(x)      //返回数的正弦。
    sqrt(x)     //返回数的平方根。
    tan(x)      //返回角的正切
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值