(day 3)JavaScript学习笔记(基础之数据类型及数据类型转换)

 概述

        这是我的学习笔记,记录了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'

        以上便是今天的学习内容,如果对你有所帮助请点个赞在走吧。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/438901.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

力扣--从前序与中序遍历序列构造二叉树

题目&#xff1a; 思想&#xff1a; 首先先序遍历能确定根节点的值&#xff0c;此时查看该值在中序遍历中的位置&#xff08;如果索引为i&#xff09;&#xff0c;那么i左侧为左子树&#xff0c;i 右侧为右子树。从中序数组中即可看出左子树结点个数为 i&#xff0c;右子树节点…

Galxe:被低估的加密市场掘金地+Web3门户

在BTC ETF获得 SEC 的批准之后&#xff0c;机构资金大量买入推动BTC上涨&#xff0c;并带动整个加密市场回暖进入牛市。那么&#xff0c;对于习惯了熊市保守心态的投资者来说&#xff0c;接下来如何转换策略适应牛市&#xff1f;对即将进场的Web2用户来说&#xff0c;如何玩赚W…

Git小册-笔记迁移

Git简介 Git是目前世界上最先进的分布式版本控制系统&#xff08;没有之一&#xff09;。 所有的版本控制系统&#xff0c;其实只能跟踪文本文件的改动&#xff0c;比如TXT文件&#xff0c;网页&#xff0c;所有的程序代码等等&#xff0c;Git也不例外。版本控制系统可以告诉…

【elementplus】el-image图片预览的显示不全问题(和el-table、el-dialog组合使用时)

问题&#xff1a; 在和el-table、el-dialog组合使用时&#xff0c;el-image图片预览的时候&#xff0c;会可能出现显示不全图片的情况。 解决方法&#xff1a; <el-image-viewer:z-index"3000":teleported"true"/>element文档中有属性&#xff1a;…

vue2的element UI 表格单选

代码 this.$refs.multipleTable.toggleRowSelection(selection.shift(), false);multipleTable 是定义的表格的ref

【贪玩巴斯】关于在colab中上传本地csv使用方法(不用云)

有三种方法&#xff0c;但是这一种是最方便的。 当CSV文档在本地电脑&#xff0c;只需要输入以下代码&#xff08;个人建议在首行&#xff09;&#xff1a; from google colab import files uploadedfilesupload() 然后点击Choose Files 选择CSV文档&#xff08;注意文件是…

Spring框架Bean对象的五个作用域

一、前言&#xff1a;Bean对象简介 在Spring项目中&#xff0c;那些由Spring IoC容器所管理的对象&#xff0c;称为bean。简单地讲&#xff0c;bean就是由Spring容器初始化、装配及管理的对象&#xff0c;除此之外&#xff0c;bean就与应用程序中的其他对象没有什么区别了。 而…

phpstorm console xdebug

1.所有配置跟浏览器http请求一样 2.记得Current File 必须是controller文件 注意&#xff1a;如果没有出发断点&#xff0c;则echo phpinfo(),查看remote_port 和phpstorm 配置是否对上。

libevent源码解析:io事件(一)

文章目录 前言一、用例简单服务端实现参数设置 二、基本数据结构介绍三、源码分析event_base_newevent_newevent_addevent_base_dispatch 三、libevent和epoll中的事件标记epoll中的事件标记libevent中的事件标记libevent和epoll中事件标记的对应关系 总结 前言 libevent中对三…

sqlserver 默认端口号不通 1433 开启监听

1.打开SQL Server 2022 配置管理器 查看这3个东西是否启用&#xff0c;然后双击TCP/IP 把默认端口全部设置成1433 然后cmd netstat -an | find "1433" 查看端口是否打开监听

【AI视野·今日Sound 声学论文速览 第五十四期】Thu, 7 Mar 2024

AI视野今日CS.Sound 声学论文速览 Thu, 7 Mar 2024 Totally 8 papers &#x1f449;上期速览✈更多精彩请移步主页 Daily Sound Papers Can Audio Reveal Music Performance Difficulty? Insights from the Piano Syllabus Dataset Authors Pedro Ramoneda, Minhee Lee, Dasa…

感染了后缀为.[[backup@waifu.club]].wis勒索病毒如何应对?数据能够恢复吗?

引言&#xff1a; 在当今数字化时代&#xff0c;网络安全威胁层出不穷。其中&#xff0c;勒索软件是一种常见而具有破坏性的威胁之一。而.[[backupwaifu.club]].wis、[[MyFilewaifu.club]].wis、.[[Rastairmail.cc]].wis勒索病毒作为其中的一种&#xff0c;以其高度破坏性和隐…

软考69-上午题-【面向对象技术2-UML】-关系

一、关系 UML中有4种关系&#xff1a; 依赖&#xff1b;关联&#xff1b;泛化&#xff1b;实现。 1-1、依赖 行为&#xff08;参数&#xff09;&#xff0c;参数就是被依赖的事物&#xff0c;即&#xff1a;独立事物。 当独立事物发生变化时&#xff0c;依赖事务行为的语义也…

阿里云ECS磁盘扩容操作手册

云原生专栏大纲 文章目录 ESC磁盘扩容步骤前提条件云盘备份云盘扩容扩容分区和文件系统前提条件操作视频操作步骤准备工作&#xff1a;获取目标云盘信息步骤1&#xff1a;扩容分区步骤2&#xff1a;扩容文件系统 ESC磁盘扩容步骤 扩容已有云盘的操作步骤和注意事项_云服务器 …

一些硬件知识(六)

防反接设计&#xff1a; 同步电路和异步电路的区别: 同步电路:存储电路中所有触发器的时钟输入端都接同一个时钟脉冲源&#xff0c;因而所有触发器的状态的变化都与所加的时钟脉冲信号同步。 异步电路:电路没有统一的时钟&#xff0c;有些触发器的时钟输入端与时钟脉冲源相连…

微信小程序(五十三)修改用户头像与昵称

注释很详细&#xff0c;直接上代码 上一篇 新增内容&#xff1a; 1.外界面个人资料基本模块 2.资料修改界面同步问题实现&#xff08;细节挺多&#xff0c;考虑了后期转服务器端的方便之处&#xff09; 源码&#xff1a; app.json {"window": {},"usingCompone…

打造经典游戏:HTML5与CSS3实现俄罗斯方块

&#x1f31f; 前言 欢迎来到我的技术小宇宙&#xff01;&#x1f30c; 这里不仅是我记录技术点滴的后花园&#xff0c;也是我分享学习心得和项目经验的乐园。&#x1f4da; 无论你是技术小白还是资深大牛&#xff0c;这里总有一些内容能触动你的好奇心。&#x1f50d; &#x…

Android随手记

activity的生命周期 创建时 onCreate() - onStart() - onResume() - onPause() - onStop() - onDestroy() 切换时 a切换到b a.onCreate() - a.onStart() - a.onResume - a.onPause - b.onCreate() - b.onStart() - b.onResume() - a.onStop() b切换回a b.onPause() - a.onR…

设计模式之——简单工厂模式

上图为简单工厂模式的架构图。 1&#xff0c;产品&#xff08;Product&#xff09; 将会对接口进行声明。 2&#xff0c;具体产品&#xff08;Concrete Products&#xff09;是产品接口的不同实现。 3&#xff0c;创建者&#xff08;Concrete Creators&#xff09;将会重写基…

Docker基础教程 - 7 容器数据卷

更好的阅读体验&#xff1a;点这里 &#xff08; www.doubibiji.com &#xff09; 7 容器数据卷 什么是容器卷&#xff0c;为什么需要容器卷&#xff1f; 我们在运行容器的时候&#xff0c;产生的数据都是保存在容器内部的。如果使用Docker来运行mysql容器&#xff0c;数据…