当前位置:首页 > 技术 > 正文内容

【JS】大道至简---来看看JS中你最熟悉的变量和数值的知识吧

Lotus2022-10-30 14:43技术


1 变量

1.1 什么是变量?

变量就是一个装东西的盒子。变量是用于存放数据的容器。我们通过变量名获取数据,数据可以被更改。

1.2 声明变量

1.2.1 定义单个变量

js通过var来声明变量,var是一个JS关键字,用来声明变量(Variable变量的意思),使用该关键字声明变量后,计算机会自动会变量分配内存空间,不需要程序员管。程序员只需要通过变量名获取数据。

var age = 3;

计算机会为age分配一个空间,而程序员则可通过age拿到3的数据。

1.2.2 声明多个变量

程序员不需要像下面这般一行一行的定义

var age = 14;
var name = "youtanzhi";
var sex = 'male';

而可以在一行里同时定义,只需要用逗号隔开

var age = 14,name = "youtanzhi",sex = 'male';

1.2.3 声明变量的特殊情况

  1. 只声明 不赋值 结果是undefined
  2. 不声明不赋值,报错
  3. 不声明直接赋值 是可以使用的(全局变量)
<script type="text/javascript">
var age;
console.log("我是只声明为赋值的变量:"+age);
username = "张三";
console.log("我是未声明直接赋值的变量"+username);
console.log("我是未声明未赋值的变量"+pl);

</script>

【JS】大道至简---来看看JS中你最熟悉的变量和数值的知识吧_JavaScript

1.3 变量的命名规范

  • 由字母(A-Z,a-z),数字(0-9)、下划线(_),美元符号($)组成,如userAge,num01;
  • 严格区分大小写,var App和var app是两个变量
  • 不能以数字开头,22username 是错误的
  • 不能是关键字保留字。例如:var、for、while
  • 变量名必须有意义。也就是尽可能是英文单词,推荐翻译网站:有道、爱词霸
  • 采用驼峰命名法,首字母小写,后面单词的首字母需要大写 如youTanZhi
  • 不要使用name

2.1 简介

2.1.1 为什么需要数据类型

不同数据占据的空间是不同的,为了便于把数据分成所需内存大小不同的数据,充分利用存储空间,于是定义了不同的数据类型。

2.1.2 变量的数据类型

  • js的变量数据类型只有程序在运行过程中,根据等号右边的值来确定的
  • js是动态语言,变量的数据类型是可以变化
var x = 6;
x = "Bill";

如上,本来是数值型,后来变成了字符型。

2.2 简单数据类型

2.2.1 简单数据类型

简单数据类型

说明

默认值

Number

数字型,包含整型值和浮点型值,如21、0.21

0

Boolean

布尔值类型,如true、false,等价于1和0

false

String

字符串型,如“游坦之”

""

Undefined

var a;声明了变量a但是没有给值,此时a=undefined

undefined

Null

var a = null;声明了变量a为控制

null

2.2.2 数值型 Number

2.2.2.1 八进制和十六进制
  • 八进制前面加0,如010,就代表八进制的10
  • 十六进制前面加0x,如0x11 就代表十六进制下的11
2.2.2.2 最值
  • 数值型的最大值 Number.MAX_VALUE
  • 数值型的最小值 Number.MIN_VALUE
  • 无穷大 Infinity(超出最大值)
  • 无穷小 -Infinity(超出最小值)
  • NaN 非数字
  • isNaN(变量) 判断是不是非数字,数字返回false,非数字返回true

2.2.3 字符串型

2.2.3.1 字符串型基础

字符串类型可以是引号中的任意文本,其语法为双引号""和单引号''。js推荐使用单引号

如果字符串里面还想用引号,根据如下口诀:“外单内双,外双内单”

2.2.3.2 字符串转义字符

转义符

解释说明

\n

换行符。n是newline 的意思

\ \

斜杠\

\ '

单引号

\ "

""双引号

\t

tab缩进

\b

空格,b是blank的意思

<script type="text/javascript">
var str = ' 我是\'游\b坦之\' ,武\\功\\非常的\"高强"\,\n我爱慕阿\t紫';
console.log(str);
</script>

【JS】大道至简---来看看JS中你最熟悉的变量和数值的知识吧_JavaScript_02

2.2.3.2 字符串长度

通过str.length的方式获取字符串的长度

2.2.3.3 字符串的拼接

【JS】大道至简---来看看JS中你最熟悉的变量和数值的知识吧_JavaScript_03

  • 用+拼接,如下
var str = '游坦之'+'你好';//结果是游坦之你好
  • 字符串 + 任何类型 = 拼接之后的新字符串
var str = '小游'+true;//与布尔类型拼接为 小游true
var str = '小游'+666;//与数值类型拼接为 小游666

2.2.4 Boolean型

只有true和false两个值,默认为false。布尔型类false在加法运算中当0来看,true在加法运算中当1来看。

2.2.5 Undefined和Null

分别为未定义的、空的。Undefined和数值相加是NaN,Null和数值相加是数值(Null计算中当0来看)

2.3 数据类型的转换

2.3.1 获取数据的类型

可以通过以下两种方式判断变量的类型

  • 关键词 typeof
var num = 10;
console.log(typeof num);//会返回num的数值类型 为 Number 数值型
  • 控制台输出的颜色

字符串是黑色,数值是浅蓝,Boolean类型是深蓝,Undefined和Null都是浅灰。

2.3.2 转换为字符串型

其中第三种最为常用

方式

说明

案例

toString()

转换成字符串

var num = 1;alert(num.toString())

String()

转换成字符串

var num = 1;alert(String(num));

加号拼接字符串

和字符串拼接的结果都是字符串,隐式转换

var num = 1;alert(num+' ');

2.3.3 转为数字型

方式

说明

案例

parseInt(string)函数

将String类型转成整数数值型

parseInt("78")

parseFloat(string)函数

将string类型转成浮点数数值型

parseInt("78.21")

Number()强制转换函数

将字符型转换为数值型

Number("12")

js隐式转换(-,/,*)

利用算数运算隐式转换为数值型

'12' - 0

注意
  1. parseInt(变量);将需要转化的变量放到括号里面
  • 取整,小数会被舍弃
  • 可以自动去掉数字后面的字符串 如"120px"->120 ,"120eeee"->120;
  • "a12",第一个字符不是数字的话,会被转化成NaN
  1. parseFloat(变量):可以得到小数
  • 可以自动去掉数字后面的字符串 如"120px"->120 ,"120eeee"->120;
  • "a12",第一个字符不是数字的话,会被转化成NaN
  1. 第三种第四种只能处理纯数值字符组成的字符串,如'12'、'12.001'
例子
<script type="text/javascript">
var str = "12.01px";
console.log( parseInt(str));
console.log(parseFloat(str));
var str_1 = '12.001';
console.log(Number(str_1));
console.log(str_1 - 0);
</script>

【JS】大道至简---来看看JS中你最熟悉的变量和数值的知识吧_JavaScript_04

2.3.4 转换为布尔型

【JS】大道至简---来看看JS中你最熟悉的变量和数值的知识吧_JS_05

方式

说明

案例

Boolean()函数

其他类型转成布尔值

Boolean("true")

  • 代表空、否定的值会被转换成false,如''、0、NaN、null、undefined
  • 其余值都会被转换为true

原文链接

扫描二维码推送至手机访问。

版权声明:本文来源于网络,仅供学习,如侵权请联系站长删除。

本文链接:https://news.layui.org.cn/post/977.html

分享给朋友:

“【JS】大道至简---来看看JS中你最熟悉的变量和数值的知识吧” 的相关文章

第三章 知己知彼

知彼知己,百战不殆;不知彼而知己,一胜一负;不知彼,不知己,每战必殆。《谋攻篇》 前面两章其实重点是在掰扯数智化,IT研发本身的数字化其实除了DevOps这一种手段之外还有很多,比如Low Code、RPA等等,AI都可以自动写代码了,还有啥是不可能的呢!不过本人能力有限,这点斤两也就敢玩玩DevOps,其他的碰都就不敢碰,接下来聚焦到DevOps的一些见解上。 3.1 剑锋所指      ...

详解机器学习中的数据处理(二)——特征归一化

摘要:在机器学习中,我们的数据集往往存在各种各样的问题,如果不对数据进行预处理,模型的训练和预测就难以进行。这一系列博文将介绍一下机器学习中的数据预处理问题,以\(\color{#4285f4}{U}\color{#ea4335}{C}\color{#fbbc05}{I}\)数据集为例详细介绍缺失值处理、连续特征离散化,特征归一化及离散特征的编码等问题,同时会附上处理的\(\color{#4...

[s905l3]性价比神机mgv3000全网首拆,刷armbian实现更多价值!

最近花55淘了一台mgv3000,s905l3,2+16G带蓝牙,真的性价比没得说 S905L3 工艺28nm差于s905l3a 主频1.9Ghz,超频可以达到2Ghz,GPU是Mail450,当服务器跑ha,nas什么都是很不错的。 而且还自带蓝牙,总体性价比比s905l3a系列高多了 按我的方法可以启动,网卡没有问题,但是目前没有显示,没有蓝牙。 等之后我有时间了照着安卓的dtb改一改也许会解...

【微信小程序】认识小程序页面

????系列专栏:微信小程序 ????欢迎关注????点赞????收藏⭐留言???? ✅个人主页:​​hacker_demo的51CTO博客​​ ????个人格言:不断的翻越一座又一座的高山,那样的人生才是我想要的。这一马平川,一眼见底的活,我不想要,我的人生,我自己书写,余生很长,请多关照,我的人生,敬请期待???????????? 新建小程序页面 只需要在app.json->...

devops学习笔记-jenkins实现基础CI/CD操作

在之前的devops工具链中完成了jenkins以及gitlab配置之后,可以实现基础的CI/CD操作。 操作流程 整体的操作的流程如下所示: 在开发环境配置好代码之后,将代码上传到gitlab,jenkins拉取gitlab的代码,由maven插件build,打包好后,构建 docker镜像,上传到目标服务器中运行,可以通过tag选择版本代码。 本地编写代码 使用idea编写一个基础的spr...

CPS攻击案例(一)——基于脉冲宽度调制PWM的无人机攻击

​  本文系原创,转载请说明出处 Please Subscribe Wechat Official Account:信安科研人,获取更多的原创安全资讯 原论文链接:sec22-dayanikli.pdf (usenix.org) 目录 摘要 一 知识背景 1.1 CPS 1.2 脉冲宽度调制PWM 二 攻击方案研究思路 2.1 研究背景 2.2 灵感与动机 2.3 PWM控制执行器的机理 2.3....

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。