3、数据类型

三、数据类型

JavaScript 中的数据类型分为原始类型和对象类型

  • 原始类型

    • 数字
    • 字符串
    • 布尔值
  • 对象类型
    • 数组
    • “字典”
    • ...

特别的,数字、布尔值、null、undefined、字符串 是不可变。


// null、undefined
   null是JavaScript语言的关键字,它表示一个特殊值,常用来描述“空值”。
   undefined是一个特殊值,表示变量未定义。<br><br>



// undefined [NaN]
   undefined表示未定义值。

1、数字Number 

JavaScript中不区分整数值和浮点数值,JavaScript中所有数字均用浮点数值表示。下面来看一下代码示例:

JavaScript中不区分整数值和浮点数值,JavaScript中所有数字均用浮点数值表示。

转换:

?parseInt(..)    将某值转换成数字,不成功则NaN

?parseFloat(..) 将某值转换成浮点数,不成功则NaN

特殊值:

? NaN,非数字。可使用 isNaN(num) 来判断。

? Infinity,无穷大。可使用 isFinite(num) 来判断。

更多数值计算:http://www.cnblogs.com/wupeiqi/articles/5602773.html

代码展示:

<body>

<script type="text/javascript">

var num1 = new Number(123); //创建了一个数字类型的对象         var num3 = Number(456);   // 456        var num2 = 666;

var s1 = ‘s123‘;        var num4 = parseInt(s1);

console.log(num1.valueOf(),num2,num3);        console.log(num4);  // NaN        if(isNaN(num4)){            console.log(‘not a number‘);  // not a number        }        else {            console.log(‘a number‘);        }        console.log(isFinite(num3));    // 是否是有限值 true   Infinity表示无穷大。        console.log(typeof num3);      // ‘number‘ 返回的是字符串     var a = 1222.4444444;     console.log(a.toFixed(2));       // 1222.44     console.log(a.toExponential(3)); // 1.222e+3 

</script>

执行结果:

2、字符串常用方法及属性

调试的地方可以在google chrome 上进行测试,F12点击"Console"



字符串是由字符组成的数组,但在JavaScript中字符串是不可变的:

可以访问字符串任意位置的文本,但是JavaScript并未提供修改已知字符串内容的方法。

常见功能:

obj.length                           长度

obj.trim()                           移除空白

obj.trimLeft()

obj.trimRight)

obj.charAt(n)                        返回字符串中的第n个字符

obj.concat(value, ...)               拼接

obj.indexOf(substring,start)         子序列位置

obj.lastIndexOf(substring,start)     子序列位置

obj.substring(from, to)              根据索引获取子序列

obj.slice(start, end)                切片

obj.toLowerCase()                    大写

obj.toUpperCase()                    小写

obj.split(delimiter, limit)          分割

obj.search(regexp)                   从头开始匹配,返回匹配成功的第一个位置(g无效)

obj.match(regexp)                    全局搜索,如果正则中有g表示找到全部,否则只找到第一个。

obj.replace(regexp, replacement)     替换,正则中有g则替换所有,否则只替换第一个匹配项,

                                     $数字:匹配的第n个组内容;

                                     $&:当前匹配的内容;

                                     $`:位于匹配子串左侧的文本;

                                     $‘:位于匹配子串右侧的文本

                                     $$:直接量$符号


a.replace(/\d+\w\d+/g, "$2eric$1")    #不加分组的正则,后面的$不代表任何意义
"alsdf$2eric$1dsf21sfd"

$1 $2 代表分组
a.replace(/(\d+)\w+(\d+)/,"$2"+"eric"+"$1")   # \w+代表字母与数字 贪婪匹配
"alsdf1eric123sfd"

a.replace(/(\d+)[a-zA-Z]+(\d+)/g,"$2"+"eri"+"$1")
"alsdf21eri123sfd"

$&代表正则内的所有匹配内容。

a.replace(/(\d+)\w+(\d+)/,":before:"+"$&"+":after:")
"alsdf:before:123dsf21:after:sfd"

obj.trim()           #去除空格


var a = "  Luotianshuai  "

undefined

a.trimLeft()      #去除左边的空格"Luotianshuai  "

a.trimRight()   #去除右边的空格"  Luotianshuai"

a.trim()            //去除两边的空格

"Luotianshuai"

a

"  Luotianshuai  "    #这里可以发现我执行了上面的去除空格的命令之后,实际的值是没有改变的

b = a.trim()

"Luotianshuai"       #但是我们可以通过赋值来改变他b

"Luotianshuai"

obj.charAt(index)   # 根据索引获取字符串里的字符


b

"Luotianshuai"

b.charAt(0)

"L"

b.charAt(1)

"u"

b.charAt(2)

"o"

obj.substring(start,end)  #获取字符的子序列,类似于切片 


b

"Luotianshuai"

b.substring(0,3)

"Luo"

obj.indexOf(char)   #去字符串找指定的字符的索引值是多少


b

"Luotianshuai"

b.indexof("t")

3

obj.length      # 获取字符串的长度

b

"Luotianshuai"

b.length

12

3、布尔类型(Boolean)

布尔类型仅包含真假,与Python不同的是其首字母小写。

  • ==      比较值相等
  • !=       不等于
  • ===   比较值和类型相等
  • !===  不等于
  • ||        或
  • &&      且

布尔类型;例子测试。

a = 123
b = "123"
"123"
c = 123

>> typeof a
"number"
>> typeof b
"string"
>> typeof c
"number"
>>a == b
true
>> a === b
false
>> a === c
true
>> a !== b
true
>> a != b
false



5、数组


常用方法:

  添加
        obj.push(ele)                   追加
        obj.unshift(ele)                最前插入
        obj.splice(index,0,‘content‘)   指定索引插入
    移除
        obj.pop()                       数组尾部获取
        obj.shift()                      数组头部获取
        obj.splice(index,count)         数组指定位置后count个字符

    切片
        obj.slice(start,end)
    合并
        newArray = obj1.concat(obj2)
    翻转
        obj.reverse()

    字符串化
        obj.join(‘_‘)
    长度
        obj.length

声明一个数组和python中的列表类似


a = [11,22,33,44] #声明一个数组
[11, 22, 33, 44]

插入



a = [11,22,33,44] #声明一个数组
[11, 22, 33, 44]
a.push(55) #在数组最后增加一个元素
#这里是数组的长度
a
[11, 22, 33, 44, 55]
a.unshift(00) #在数组最前面增加一个元素
#长度
a
[0, 11, 22, 33, 44, 55]
a.splice(3,0,‘insert‘)  #在指定的索引增加一个元素,括号内(3为索引值,0为固定值,要插入的内容)
[]
a
[0, 11, 22, "insert", 33, 44, 55]
a.unshift(100)

移除

a
[100, 0, 11, 22, "insert", 33, 44, 55]
a.pop()     #从尾部获取
a.shift()   #从开头获取
a
[0, 11, 22, "insert", 33, 44]
a.splice(3,1)     #从指定位置获取,括号内参数为(元素的索引,后面为索引后的元素个数,包含本身)
["insert"]
a
[0, 11, 22, 33, 44]

切片


a
[0, 11, 22, 33, 44]
a.slice(1,3)
[11, 22]
a
[0, 11, 22, 33, 44]

合并

a = [11,22]
[11, 22]
b = [44,55]
[44, 55]
a.concat(b)
[11, 22, 44, 55]
a
[11, 22]
b.concat(a)
[44, 55, 11, 22]

反转


a
[11, 22]
a.reverse()
[22, 11]
a
[22, 11]

字符串格式化


a
[22, 11]
a.join(‘_‘)
"22_11"
a
[22, 11]

数组长度


a
[22, 11]
a.length
2

6、字典

字典是数组的一种特殊形式




var items = {‘k1‘: 123, ‘k2‘: ‘tony‘}

a = {"k1":"alex",11:22}
Object {11: 22, k1: "alex"}

a[11]
22
a["k1"]
"alex"



来自为知笔记(Wiz)

时间: 2024-10-24 10:02:11

3、数据类型的相关文章

MariaDB(MySQL)创建、删除、选择及数据类型使用详解

一.MariaDB简介(MySQL简介略过) MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可 MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品.在存储引擎方面,使用XtraDB(英语:XtraDB)来代替MySQL的InnoDB. MariaDB由MySQL的创始人Michael Widenius(英语:Michael Widenius)主导开发,他早前曾以10亿美元的价格,将自己创建的公司MySQL A

JavaScript数据类型检测

一.JavaScript 数据类型 1.基本数据类型(6种) Undefined Null Boolean Number String Symbol (ES6新增) 2.引用数据类型: Object 二.数据类型检测 1. typeof 可以检测除null 外的基本类型.null 和所有对象的typeof都是"object", 不能用于检测用户自定义类型. 比如Date, RegExp, Array, DOM Element的类型都是"object". var s

【个人笔记】《知了堂》MySQL中的数据类型

MySQL中的数据类型 1.整型 MySQL数据类型 含义(有符号) tinyint(m) 1个字节  范围(-128~127) smallint(m) 2个字节  范围(-32768~32767) mediumint(m) 3个字节  范围(-8388608~8388607) int(m) 4个字节  范围(-2147483648~2147483647) bigint(m) 8个字节  范围(+-9.22*10的18次方) 取值范围如果加了unsigned,则最大值翻倍,如tinyint un

英文词频统计预备 组合数据类型练习

1.实例: 下载一首英文的歌词或文章,将所有,.?!等替换为空格,将所有大写转换为小写,统计某几个单词出现的次数,分隔出一个一个的单词. big='''OoohOooh Put your make-up onGet your nails doneCurl your hairRun the extra mileKeep it slim so they like you, do they like you? Get your sexy onDon't be shy, girlTake it offT

Java基础——数据类型

声明:本栏目所使用的素材都是凯哥学堂VIP学员所写,学员有权匿名,对文章有最终解释权:凯哥学堂旨在促进VIP学员互相学习的基础上公开笔记. 一.数据类型(八种): 1.计算机的存储进位:位是最小的存储数据单位,以此类推,如图: 2.在java里我们可以使用 0b或者0x表示二进制和十六进 如:0xABC或0b01010001: 3.在java里面数据存储中高位是1 就是负数,高位是0 就是正数: 4.Java数据类型详解: 整数数值:int short:小于32767 byte:小于127 小数

python数据类型详解

主要内容: 列表.元组操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码 列表与元组 定义列表 1 list = ['a' , 'b', 'c', 'd'] 通过下标访问列表中的元素,下标从0开始计数 1 list[0] # 'a' 2 list[1] # 'b' 3 list[-1] # 'd' 4 list[-2] # 'c' 基本操作: 切片:取多个元素 1 list = ["A","B","C","D",&

MongoDB的数据类型(四)

JSON JSON是一种简单的数据表示方式,它易于理解.易于解析.易于记忆.但从另一方面来说,因为只有null.布尔.数字.字符串.数组和对象这几种数据类型,所以JSON有一定局限性.例如,JSON没有日期类型,JSON只有一种数字类型,无法区分浮点数和整数,更别说区分32为和64位数字了.再者,JSON无法表示其他一些通用类型,如正则表达式或函数. BSON BSON(Binary Serialized Document Format)是一种类JSON的二进制形式的存储格式,简称Binary

myasql支持的数据类型以及函数转换

myasql支持的数据类型 1.数值类型 tinyint 1 小整数 smallint 2 大整数 mediumint 3 大整数 int 4 大整数 bigint 8 极大整数 如果插入 的较大较小 会自动改编为范围值 多余的数截取 float 4 double 8 decimal 默认是10 可以指定多少个整数和小数 2.字符串类型 char 0-255字节 定长字符串 varchar 0-255字节 变长字符串 tinyblob 0-255字节 不超过255个字符的二进制字符 tintex

C# 《三》变量、常量与数据类型(1)

变量操作 在计算机中存储数据和儿童在抽屉中存放物品很类似. 1.计算机存储变量的过程: 1)声明变量: 2)给变量赋值: 3)使用变量. 声量的声明.赋值 1.要在计算机中存一个数字 50,需要两句话. int a; //将要放的物品告诉家长(声明变量) a = 50; //将物品放到某个抽屉中 (赋值) 2.声明变量的语法格式: 1)数据类型   变量名: 3.赋值:  变量名  = 值: 4.可以  a = 3.14 :吗??? 5.数据有整数(int).小数(double).字符串(str

Python 03-pyc、数据类型

pyc是什么? 在Python3中才有的. Java是先编译再解释.Python也是基于虚拟机的语言. 执行Python时,会先编译,编译的结果保存在位于内存中的PyCodeObject中,运行时解释器将PyCodeObject写回到pyc文件,它是预编译后的二进制的字节码文件. 第二次运行时,会先找pyc文件.所以pyc文件其实是PyCodeObject的一种持久化保存方式. 第二次运行时,会先检查下时间,看下有没有过修改,如果有修改会再编译一次. 数据类型 type()查看数据类型 1.in