JavaScript(一)——变量,数据类型及转换、运算符和逻辑结构
JS
- 1.概述
- 2.开发环境
- 3.JS的语法规范
- 4.变量与常量
- 4.1常量
- 4.2 变量
- 5.数据类型
- **typeof 检测数据类型**
- 5.1原始类型
- (1)数值型
- (2)字符串型
- (3)布尔型
- (4)未定义型
- (5)空
- 5.2 引用类型:对象、数组
- 5.3数据类型转换
- 1)隐式转换
- 2)强制转换
- 6.运算符
- (1)算术运算符
- (2)※比较运算符(等于与===)
- (3)※逻辑运算符(短路逻辑)
- (4)位运算符
- (5)赋值运算符
- (6)三目运算符 ? :
- 7.逻辑结构
- 7.1 条件语句:
- 7.2 循环
1.概述
(1)历史
1995年,JS最早出现在NetScape的浏览器中
1996年,IE3中也出现了JS的克隆版,称作JScript
1997年,EMCA组织制定了JS的标准规范ECMAScript
2009年,JS遵循CommonJS规范,开始向服务器端发展
(2)现状
JS既可以运行在客户端浏览器,也可以运行在服务器端
(3)特点
- 解释型语言,编译一行执行一行
- 弱类型语言
- 基于对象
- 跨平台性
(4)应用场景
开发浏览器端的交互效果
服务器端开发
2.开发环境
(1)浏览器端:自带的JS解释器
(2)服务器端:Node.js
(3)运行JS
5. 浏览器
创建01.js和01.html,将js文件嵌入到html中
<script src="01.js"></script>
6. 服务器端 Node.js
node 拖拽文件 回车
3.JS的语法规范
a. 区分大小写
b. 每行结束的分号可以省略
c. 分为单行注释(//…)和多行注释(/…/)
4.变量与常量
4.1常量
常量:用于存储数据的容器
例如 const pi=3.14
常量一旦声明必须赋值,不允许重新赋值
4.2 变量
变量:用于存储数据的容器
var a = 1
使用var声明变量,在内存中开辟空间名称为a,然后把1存入。
(1)变量的命名规则
- 变量的名称可以由字母、数字、下划线、美元符号组成
- 不能以数字开头
- 不能使用关键字
(2)变量的赋值
- 变量声明后未赋值则为undefined(未定义),这表示一个空值
- 变量可以被多次赋值,赋不同类型的值,这是弱类型语言的特点
5.数据类型
数据类型分为原始类型和引用类型
原始类型分为数值型、字符串型、布尔型、未定义型(undefined)、空(null)
typeof 检测数据类型
‘number’
‘string’
‘boolean’
‘undefined’
‘object’
示例一:
var a;
//typeof(a) = "undefined"
console.log(typeof(typeof(a)));//string
5.1原始类型
(1)数值型
- 整型
10进制
1 2 3 … 7 8 9 10 … 15 16
8进制,以0开头的数字,例如010
1 2 3 … 7 10 11 12
16进制,以0x开头的数字,例如0xa 不区分大小写
1 2 3 … 7 8 9 a … f 10 - 浮点型
3141.5e-1
314.15
31.415e+1
(2)字符串型
被引号包含的数据就是字符串型,不区分单双引号
查看任意一个字符的Unicode码 's'.charCodeAt()
(3)布尔型
true和false,代表真和假,表示只有两个结果的数据.
(4)未定义型
undefined
声明了变量未赋值则为undefined,属于一种空值
(5)空
值null
类型是object(对象),常结合引用类型数据使用
5.2 引用类型:对象、数组
JavaScript(三)——对象与数组及API
JavaScript(四)——具体对象(Math、字符串对象、Date对象、Number对象及Boolean对象)
5.3数据类型转换
加号(+)的作用
(1)加法运算
(2)字符串之间的拼接
数据类型转换分为隐式转换和强制转换
1)隐式转换
隐式转换为数值自动的调用函数Number()
NaN:Not a Number,不是一个数字,是在将数据转数值的时候失败的结果,和任何的值执行数学运算结果还是NaN
(1)数字+字符串 数字转为字符串
2 + '1' //'21'
"6"- 3 = 3
//-*÷隐式转换,结果为数值型
(2)数字+布尔型 布尔型转为数值
true-1 false-0
1+true //2
1+false //1
(3)字符串+布尔型 布尔型转为字符串
'5'+true //'5true'
示例一:
//"11"*2=22,隐式转换,结果是数字类型,-*÷等结果转换为数字
console.log(11+"11"*2===33); //true
+ - 会将变量隐式转换为数值型
var a;
typeof(+a);//"number"
示例二:
var a=2,b=true,c='tedu';
console.log(a+b+c); //'3tedu'
console.log(b+c+a); //'truetedu2'
console.log(c+a+b); //'tedu2true'
2)强制转换
(1)强制转换为数值 Number()
Number(true) //1
Number(false) //0
Number('2') //2
Number('2a') //NaN
Number(undefined) //NaN
Number(null) //0
(2)强制转换为整型 parseInt()
通常用于将小数和字符串转为整型,其它的转换为NaN
parseInt(8.9) //8
parseInt('3.14') //3
parseInt('6.18a') //6
parseInt('a6.18') //NaNparseInt(true);//NaN
(3)强制转换为浮点型 parseFloat()
通常用于将字符串转为浮点型,其它的转换为NaN
parseFloat('5.18') //5.18
parseFloat('7a') //7
parseFloat('a4.13') //NaN
parseFloat(5);//5
(4)将数值和布尔型强制转为字符串toString()
var num = 2;
num.toString() //'2'
6.运算符
表达式:由数据或者由运算符连接的操作数据组成的形式称作表达式
运算符分为
- 算术运算符
- 比较运算符
- 逻辑运算符
- 位运算符
- 赋值运算符
- 三目运算符
(1)算术运算符
整个算术运算符都会将数据隐式转换为数值型
+ - * / % ++ -- %
(2)※比较运算符(等于与===)
> < >= <= ==(等于) != ===(全等于) !==(不全等于)
NaN和任何值比较(> < >= <= == ===)结果都是false
3 >'10' //字符串转为数值
'3'>'10' //两个字符串比较,比较的是首个字符的Unicode码('s'.charCodeAt())//10a转换成数字为NaN
3>'10a' //false
3<'10a' //false
3=='10a' //false
NaN==NaN //false
== 等于,只是比较值是否相同,可能会发生隐式转换
=== 全等于,先比较类型,然后再比较值
!= 不等于,比较值不等于
!== 不全等于,类型不同或者值不同
console.log(2=='2');//true
console.log(2==='2');//falseconsole.log(1==true);//true
console.log(1==='true');//falseconsole.log(undefined == null);//true
console.log(undefined === null);//false
(3)※逻辑运算符(短路逻辑)
&& || !
- && 逻辑与,关联的两个条件都是true结果是true,否则是false
- || 逻辑或,关联的两个条件有一个是true结果是true,否则是false
- ! 取反
链接:JS逻辑运算符——短路逻辑
(4)位运算符
模拟计算机底层的运算,先将数据转为二进制,然后进行运算,当运算完再把结果转回成十进制。
1 2 3 4 5 6 7
1 10 11 100 101 110 111
& 按位与,上下两位比较,如果都是1结果是1,否则是0
| 按位或,上下两位比较,如果含有1结果是1,否则是0
^ 按位异或,上下两位比较,不同是1,相同时0
>> 按位右移,删除末尾的位数
<< 按位左移,在末尾补0
4>>1
10010//右移一位5&7 8|13 7^12101 1000 0111111 1101 1100———— ———— ———101 1101 1011
(5)赋值运算符
= += -= *= /= %=
运算赋值:先执行运算,再执行赋值
+=
=x += y
= x = x + y
,其他同理
(6)三目运算符 ? :
- 一目运算符:由一个运算符连接的一个操作数据或者表达式 ++ – !
- 二目运算符:由一个运算符连接的两个操作数据或者表达式
- 三目运算符:由两个运算符连接的三个操作数据或者表达式
三目运算符适用:结构简单语句,否则使用if-else
区别是三目运算有返回值
条件表达式 ? 表达式1 : 表达式2
7.逻辑结构
7.1 条件语句:
if 语句 - 只有当指定条件为 true 时,使用该语句来执行代码
if…else 语句 - 当条件为 true 时执行代码,当条件为 false 时执行其他代码
if…else嵌套语句- 使用该语句来选择多个代码块之一来执行
switch …case语句 - 使用该语句来选择多个代码块之一来执行
switch(表达式){case 值1:语句块1break;case 值n:语句块n break;default:语句块n+1 //表达式和case后的值都不相同
}
对比if-else嵌套和switch-case的区别
相同:
两者都可以用于多项判断
不同:
if-else既可以进行等于,也可以进行不等于的比较;
switch-case只能进行全等于的比较;
if-else的适用范围更加广泛,
switch-case结构上更为清晰,执行效率更高。
以下数据作为条件表达式会隐式转换为false
0 '' undefined null NaN
var s = '';
if (s=='') {console.log('这家伙很懒,什么也没留下');
}
7.2 循环
循环是一遍又一遍执行相同或者相似的代码
循环的两个要素
- 循环条件:控制循环是否要继续执行
- 循环体:要执行的相同或者相似的代码
- for - 循环代码块一定的次数
for (初始值; 循环条件; 增量) {循环体
}
- for/in - 循环遍历对象的属性
- while - 当指定的条件为 true 时循环指定的代码块
while (循环条件) {循环体
}
- do/while - 同样当指定的条件为 true 时循环指定的代码块
do{循环体
}while(循环条件);
关键字:
break 语句用于强制结束循环。
continue 用于跳过循环中的一个迭代。
JavaScript(一)——变量,数据类型及转换、运算符和逻辑结构相关推荐
- JavaScript获取变量数据类型
JavaScript前文回顾: 认识JavaScript到初体验 JavaScript 注释以及输入输出语句 JavaScript变量的使用.语法扩展.命名规范 JavaScript数据类型简介以及简 ...
- python学习笔记1-print()函数与变量+数据类型与转换+条件判断与条件嵌套+input()函数
print()函数与变量 1.基本句式 print('千寻') 2.引号的用法 3.转义字符 print('let\'s go') 4.变量和赋值 5.小结 数据类型与转换 字符串 整数 浮点数 数据 ...
- javascript 变换变量 数据类型 类型转换 运算符 运算表达式 运算优先级 理解笔记...
变换变量(两种方法) 问:有A,B两个变量,现在怎么让A,B两个变量的值互换? 答:1.定义第三个变量 取出存取A,B变量的值 代码:var a = 10; var b = 20; var c ...
- JAVA基础之变量(数据类型及其转换)
变量 变量的概念: 内存中的一个存储区域: 该区域的数据可以在同一类型范围内不断变化: 变量是程序中最基本的存储单元.包含变量类型.变量名和存储的值. 变量的作用: 用于在内存中保存数据. 使用变量注 ...
- 前端-JavaScript1-6——JavaScript之变量类型的转换
6.1 string → number 先来学习一个语句,这个语句和alert差不多,也是弹窗,弹的是输入框: 1 prompt("请输入你的电话","139&qu ...
- JavaScript判断变量数据类型
一.JS中的数据类型 1.数值型(Number):包括整数.浮点数. 2.布尔型(Boolean) 3.字符串型(String) 4.对象(Object) 5.数组(Array) 6.空值(Null) ...
- 类型转为数字_JavaScript自动数据类型的转换
JavaScript自动数据类型的转换 运算符 算术运算符 +,-,*,l,%(取余数) 关系运算符 .<=.>=.==.===.!=!== 逻辑运算符 &&与(且).|或 ...
- java基本数据类型的标识符_java基础(一)-标识符、变量、基本数据类型及转换、运算符及表达式...
一.标识符 二.关键字 三.JAVA基础数据类型 3.1.常量 3.2.变量 从本质上来讲,变量其实是内存里面的一小块区域,一个程序在运行的时候,实际上这个程序是位于内存里面,然后才开始运行.一个.e ...
- JavaScript基础--变量、运算符
JavaScript组成 ECMAScript ECMAScript 是由ECMA 国际( 原欧洲计算机制造商协会)进行标准化的一门编程语言,这种语言在万维网上应用广泛,它往往被称为 JavaScri ...
- 【Java从入门到头秃专栏 】(二) 注释 数据类型 变量 常量 关键字 标识符 运算符 输入输出
目录 1 注释 2 数据类型 3 变量与常量 4 关键字.标识符 5 运算符 6 键入值.输出值 1 注释 注释就是写在程序中对代码进行解释说明的文字,方便自己和其他人查看,以便大家更加容易理解程序. ...
最新文章
- 关于回答「对极几何与基本矩阵」的几点感悟
- Javascript 匀速运动停止条件——逐行分析代码,让你轻松了运动的原理
- python起步输入-第 4 节 小Python 起步
- @requirespermissions注解是什么意思_如何基于spring开发自定义注解实现对接口访问频次限制?...
- 【python数据挖掘课程】二十四.KMeans文本聚类分析互动百科语料
- 用华为HMS core的秘钥库文件不存在或者已经存在的解决方案
- java闰年的年份,Java案例-判断给定年份是闰年
- 苹果挖来ARM顶尖芯片工程师开发芯片 以减少对英特尔依赖
- 关于RecyclerView条目复用
- Int.Parse()、Convert.toInt32()和(int)区别
- CentOS6 修改MySQL编码
- android int 字节数组,android 将int转byte,byte转int的两种方法
- 微信公众号打开网页自动登陆配置
- 巴菲特-芒格-彼得林奇的经典观点梳理
- 在存储过程中调用外部对象进行简繁互换
- 前端性能优化——字体文件压缩
- CentOS离线 + 在线安装telnet(rpm包安装)
- Istio系列学习(十四)----Istio策略适配器配置和Env适配器配置
- StrConv 内码转换
- mysql子查询不支持limit问题解决
热门文章
- 【Android】No resource found that matches the given name 'Theme.Sherlock.Light.NoActionBar'
- javascript单元测试:jasminejs 2.0的烦恼
- nQueen问题java实现
- 我会回来的!我很想念大家!
- BOM操作及DOM表单案例练习
- python中list 和array的区别
- Html Picture
- 7-31 字符串循环左移 (20 分)
- tomcat启动Configuration Error: deployment source ‘xxx:war exploded‘ is not valid
- call() apply() bind()