数据类型
Java script 的数据类型分为基础数据类型和复合数据类型
Java script的基本数据类型
1.数值型
数值型是Java script 中的最基本的数据类型,和其他语言不同的地方在于它不区分整数数值和浮点数值,在所有的Java script 中所有的数值都是以浮点型表示的。当一个数字直接出现在Java script 程序中时候,称它为数值直接量。支持数值直接量的形式有如下几种。
- 十进制
- 八进制
- 十六进制
- 浮点型数据
2.字符串型
字符串是由0个或多个字母组成的序列,它可以包含大小写字母,数字标识符或其他字符,同时也可以包含汉字,程序中的字符串类型数据是包含在双引号或者单引号中的,由单引号定界的字符串可以含有双引号,由双引号定界的字符串中也可以包含单引号。
\b | 退格 | \v | 垂直制表符 |
---|---|---|---|
\n | 换行符 | \r | 回车符 |
\t | 水平制表符 | \\ | 反斜杠 |
\f | 换页 | \ooo | 八进制整数(000-777) |
\' | 单引号 | \xHH | 十六进制整数(00-ff) |
\'' | 双引号 | \uhhh | 十六进制编码(unicode)字符 |
注意:在document.write()中使用转义字符时候,只有将其放在格式化文本中才会起作用,所有脚本必须放在<pre></pre>的标记内。
<script type="text/javascript">
document.write('<pre>')
document.write('轻松学习\npython语言')
document.write('</pre>')
</script>
3.布尔型
数值类型和字符串类型的值都是无限多的,但是布尔类型的值只有两个。一个是True(真),一个是False(假),布尔值通常都是用于Java scrpit的控制结构,
if (n==1)
m=n+1
else
n=n+1
4.特殊数据类型
1.未定义值
未定义值undefined,表示变量还没有赋值(var a;)
2.空值
JavaScript 中的关键字null是一种特殊的值,它表示为空值,用于定义与不存在或者定义空的,但是必须要注意的是,null不等于空的字符串('' '')。当使用对象进行编程时可能会用到这个值。
null和undefinen的区别就是:null表示一个变量被赋予了一个空值,而undefined表示该变量尚未赋值。
数据结构
常量
常量是指在程序运行过程中保持不变的数据,比如:123是数值型常量,‘python语言’是字符串型常量。True和Flases是布尔型常量。
变量
变量是程序中的一个已经命名的储存单位,它的主要作用就是为了数据操作提供存放信息的容器,变量是相对于常量而言的,常量是以个不会改变的固定值,而变量会随着程序的运行而改变。
变量的特征:变量名和变量值
变量的命名规则:
- 必须以字母和下划线开头,其他字符可是是数字,字母或者下划线。
- 变量名不能包含空格,加号和减号等字符。
- 变量名严格区分大小写。
不能使用JavaScript 中的关键字。
abstract | continue | finally | instanceof | private | this |
boolean | default | float | int | public | throw |
break | do | for | interface | return | typeof |
byte | double | function | long | short | true |
case | else | goto | native | static | var |
catch | extends | implements | new | super | void |
char | false | import | null | switch | while |
class | final | in | package | synchronized | with |
变量的声明:使用关键字var后面跟变量名。
<script type="text/javascript">
var name
</script>
变量的赋值:用=号对变量进行初始化赋值。
<script type="text/javascript">
var name
name='python语言'
</script>
变量的类型:指值所属的数据类型,它可以是数值型,字符串,布尔,因为JavaScript 是弱语言,所以可以把任意数据类型赋值给变量。
<script type="text/javascript">
var name
name='有一条路,走过了总会想起'
</script>
运算符
1.算数运算符
运算符 | 描述 | 运算符 | 描述 | 示列 |
---|---|---|---|---|
+ | 加运算符 | % | 求模运算符 |
|
- | 减运算符 | ++ | 自曾运算符 该运算符有两种情况1.i++在使用i之后使i的值加+ | i=1,j=i++ i=1, j=++i |
* | 乘运算符 | -- | 自减运算符 该运算符有两种情况 1.i--在使用i之后使i的值减1 2.--i在使用i之前就先要减1 | i=6, j=i-- i=6, j=--i |
/ | 除运算符 |
2.字符串运算符
运算符 | 描述 |
---|---|
+ | 连接两个字符串 |
+= | 连接两个字符串并把结果赋值给第一个字符串 |
3.比较运算符
运算符 | 描述 |
---|---|
< | 小于 |
> | 大于 |
<= | 小于等于 |
>= | 大于等于 |
== | 等于 |
=== | 绝对等于( 根据表面值和数据类型同时进行判断) |
!= | 不等于 |
!=== | 不绝对等于 |
4.赋值运算符
运算符 | 描述 |
---|---|
= | 将右边的表达式赋值给左边的变量 |
+= | 表达式左边的变量加上右边的值然后赋值给左边的变量 |
-= | 表达式左边的变量减右边的值然后赋值给左边的变量 |
*= | 表达式左边的变量乘右边的值然后赋值给左边的变量 |
/= | 表达式左边的变量除右边的值然后赋值给左边的变量 |
%= | 左边的变量用右边的表达式的值求模,将结果赋值给左边的变量 |
5.逻辑运算符
运算符 | 描述 | 示列 |
---|---|---|
&& | 逻辑与 | a&&b 当a和b都为真的时候结果才为真,否则为假 |
|| | 逻辑或 | a||b 当a为真或者b为真的时候,结果为真,否则为假 |
! | 逻辑非 | !a 当a为假时,结果为真 |
6.条件运算符
条件运算符是Java Script 支持的一种特俗的三目运算符,语法:
表达式? 结果1:结果2
<script type="text/javascript">
var a=10,b=10
alert(a==b?'相等':'不相等')
</script>
7.其他运算符
1.逗号运算符
逗号运算符将多个表达式排在一起,而整个表达式的值为最后一个表达式的值。
<script type="text/javascript">
var a,b,c,d
a=(b=3,c=5,d=6)
alert('a的值为'+a)
</script>
2.typeof运算符
判断操作数的数据类型-------和python的type()一样。
语法:typeof 操作数
3.new运算符 --------类似于python 的实例化
通过new可以创建一个新的内置对象实例
语法:对象实例名称 = new 对象类型(参数)
对象实例名称 = new 对象类型
<script type="text/javascript">
a = new object //创建自定义对象
a = new Array() //创建数组对象
</script>
-------python-------------
class A(object):
pass
b=A() #实例化对象
8.运算符的优先级
优先级 | 结合性 | 运算符 |
---|---|---|
最高 | . , [ ] () | |
由高到低排列 | 向左 | ++,--,-,!,delete new typeof void |
向左 | *, /, % | |
向左 | + , - | |
向左 | <<, >>, >>> | |
向左 | <,<=,>,>=, in ,instanceof | |
向左 | ==,!=,=== ,!=== | |
向左 | & | |
向左 | ^ | |
向左 | | | |
向左 | && | |
向左 | || | |
向右 | ?: | |
向右 | = | |
向右 | *= /=,%=, += ,-= ,<<=, >>= ,>>>=,&=,^=,/= | |
最低 | 向左 | , |
9.表达式
表达式是运算符和操作数组合合成的式子,表达式的值就式对操作数进行运算后的结果,由于表达式是以运算符为基础,因为表达式按运算结果分为三种:
- 算数表达式,运算结果为数字的表达式
- 字符串表达式,运行结果为字符串表达式
- 逻辑表达式,运行结果为布尔值的表达式
说明:表达式是一个相对的概念,在表达式中可以含有多个子表达式,而且表达式的一个常量或者变量都可以看成是一个表达式。
10.数据类型转换规则
在对表达式进行求值时,通常需要所有的操作数都属于某种特定的数据类型,列如:进行算数运算符都要求操作数都为数值类型,连接字符串运算都要求都是字符串类型。然后JavaScript并没有进行限制,而且允许对不匹配的进行操作。
类型 | 转换后结果 |
---|---|
undefined | NaN |
null | 0 |
逻辑型 | 若为真,则为1,若为假,则为0 |
字符串型 | 若内容为数字,则返回相应的数字,否则为NaN |
其他对象 | NaN |
类型 | 转换后的结果 |
---|---|
undefined | Flase |
null | Flase |
数值型 | 若其值为0或者NaN,则结果为False,否则为Ture |
字符串型 | 若长度为0,则结果为Flase 否则为Ture |
其他对象 | True |
类型 | 转换后的结果 |
---|---|
undefined | undefined |
null | null |
数值型 | NaN,0或者与数值相对的字符串 |
逻辑型 | 若其为True则为真,若为假,则结果为假 |
其他对象 | 若存在,则结果为TOstring()方法的值,否则为undefined |
总结:总体来说和python的数据类型和结构类似,只是在与不同之处,python声名变量不需要使用关键字定义,可以直接定义,查看数据类型是使用的是typeof 操作数,而python则是type()函数。还有python是不能够数值和字符串这样直接相加的。而JavaScript则是可以的。