概述
这是我的学习笔记,记录了JavaScript的学习过程,我是有一些Python基础的,因此在学习的过程中不自觉的把JavaScript的代码跟Python代码做对比,以便加深印象。我本人学习软件开发纯属个人兴趣,大学所学的专业也非软件工程相关专业,从事的工作也非编程领域,学习编程也只能在工作闲暇时间,因此难免有些专业术语不是那么专业,并且博客会不定时更新,还请多多包涵。如果你完全没接触过JavaScript,那么这一系列的学习笔记可能会对你有所帮助。
今天主要学习数据类型及数据类型转换。
1.数据类型
JavaScript中常用的数据类型有以下几种:
(1)boolean布尔类型
它的值有两个,ture和false.(注意在JavaScript中ture和false全部小写,在Python中Ture和False首字母大写)。如下代码:
// boolean布尔类型
var visible = true;
var isEqual = false;
console.log(visible); //返回 true
console.log(isEqual); //返回 false
# 以下是Python代码
# boolean布尔类型
visible = True
isEqual = False
print(visible) # 返回 True
print(isEqual) # 返回 False
(2)number数字类型:
在JavaScript中的数字类型是不区分整数和浮点数的,都统一数据number类型,而在Python中数字是区分int整数类型和float浮点类型的。如下代码:
// number数字类型
var a = 100;
var b = 1.35;
var c = -100;
// typeof 可以查看数据类型
console.log(a, typeof a); // 返回:100 'number'
console.log(b, typeof b); // 返回:1.35 'number'
console.log(c, typeof c); // 返回:-100 'number'
# 以下是Python代码
a = 100
b = 1.35
c = -100
print(a,type(a)) # 返回: 100 <class 'int'>
print(b,type(b)) # 返回: 1.35 <class 'float'>
print(c,type(c)) # 返回: -100 <class 'int'>
(3)string字符串类型
跟Python一样,JavaScript中字符串是可以用单引号,也可以用双引号。
// string字符串类型
var str1 = "hello";
var str2 = "world";
console.log(str1); // 返回:hello
console.log(str2); // 返回:world
(4)undefined类型
undefined类型表示变量还没有初始化,还没给变量赋值,如下代码。
// undefined类型
var notInitialized;
console.log(notInitialized); //返回: undefined
如果我们直接赋值undefined,结果还是一样的。一般情况下不这样直接赋值undefined。
// undefined类型
var notInitialized = undefined;
console.log(notInitialized); //返回: undefined
注:在Python中是没有undefined数据类型的,在Python中如果变量未赋值会抛出一个NameError的异常信息。
(5)null类型
null类型与undefined区别在于null类型是变量赋值了,赋的值就是null。
//null类型
var emptyValue = null;
console.log(emptyValue); // 返回:null
在Python中没有null的数据类型,但是有相对应的None数据类型,用于表示空值或无值。
# 以下是Python代码
x = None
print(x,type(x)) # 返回:None <class 'NoneType'>
(6)其他数据类型
在JavaScript中还有object对象,array数组,function函数等特殊的数据类型,此处不展开叙述。
2.数据类型转换
JavaScript和Python都是动态类型的语言,我们在定义变量的时候不用定义变量的数据类型,在代码执行的时候会动态判断数据类型。
(1)判断数据类型
在JavaScript关键字typeof可以判断一个变量的数据类型,如下:
var str = "hello";
console.log(typeof str); //返回:string
在Python中用函数type()来判断变量的数据类型,如下:
# 以下是Python代码
# 判断数据类型
str = "hello"
print(type(str)) # 返回: <class 'str'>
(2)数据类型的自动转换
在JavaScript中代码执行的时候会动态的判断变量的数据类型,如果我们初始化一个变量为数字类型,后来我们重新赋值字符串类型的值,它的数据类型也会发生改变:
var age = 18;
console.log(age, typeof age); //返回:18 'number'
age = "18";
console.log(age, typeof age); //返回:18 string
在JavaScript中一个数字类型的数据与字符串类型的数据进行相加操作,代码运行是会把数字类型的数据自动转换为字符串类型,然后两个字符串执行拼接操作,如下:
var num = 100;
var str = "hello";
var s = num + str;
console.log(s, typeof s); //返回:100hello string
注意在Python中是不能这样操作的,否则会报错:
# 以下是Python代码
num = 100
str = "hello"
s = num + str
print(s, type(s)) # 报错:TypeError: unsupported operand type(s) for +: 'int' and 'str'
(3)parseInt()和parseFloat()函数
在JavaScript中可以用parseInt()和parseFloat()函数把复合数字类型的字符串类型转换为数字类型,parseInt()转换为整数,parseFloat()函数转换为小数,如果用parseInt()转换带小数点的字符串,会把小数点后面的数都省略,如下代码:
//parseInt()和parseFloat()函数
var strIntNum = "100";
var intNum = 50;
var result = parseInt(strIntNum) + intNum;
console.log(result, typeof result); //返回:150 'number'
var strFloatNum = "1.75";
console.log(parseFloat(strFloatNum), typeof parseFloat(strFloatNum)); //返回:1.75 'number'
console.log(parseInt(strFloatNum), typeof parseInt(strFloatNum)); //返回:1 'number'
在Python中也有如同上述的操作,分别对应int()函数和float()函数,但是如果带小数点的字符串用int()转换会报错:
# 以下是Python代码
strIntNum = "100"
intNum = 50
result = int(strIntNum) + intNum
print(result,type(result))
strFloatNum = "1.75"
print(float(strFloatNum),type(float(strFloatNum)))
# print(int(strFloatNum),type(int(strFloatNum)))
# ValueError: invalid literal for int() with base 10: '1.75'
以上便是今天的学习内容,如果对你有所帮助请点个赞在走吧。