JavaScript基础-02
1. 六种数据类型:
string字符串;number数值;boolean布尔值;null空值;undefined 未定义;object对象
基本数据类型(值类型):
string字符串;number数值;boolean布尔值;null空值;undefined 未定义;
引用数据类型:object对象
- string字符串:在JS中字符串需要使用双(单)引号引起来。
var str="hello";
在字符串中利用 \ 作为转义字符,例如str="我说:\"今天天气真好\"";
\” 表示双引号
\’表示单引号
\n表示换行
\t制表符
数据类型的判断 在JS中所有的数值都是number类型,包括整数型和浮点型(小数)
可以使用一个运算符typeof来检查一个变量的类型
语法:typeof 变量
console.log(typeof a)
JS中可以表示数字的最大值:console.log(Number.MAX_VALUE)
Number.MAX_VALUE代表的数字超过了最大值,则会返回一个Infinity,表示正无穷。
Number.MIN_VALUE代表大于0的最小值
NaN是一个特殊的数字,表示Not A Number,使用typeof 检查一个NaN也会返回number
a=”abc”*”bcd”
在JS中整数的运算基本可以保证精确,如果使用JS进行浮点元素运算,可能得到一个不精确的结果,千万不能使用JS进行对精确度要求较高的运算。
- boolean布尔值:true,false进行逻辑判断
Null类型的值只有一个,就是null:表示一个为空对象
利用typeof检查返回是object
undefined类型的值只有一个,就是undefined:当声明一个变量,但并不给变量定义时
var b;
console.log(typeof b); /*会返回一个undefined*/
强制类型转换:将一个数据类型强制转换为其他的类型数据:string字符串;number数值;boolean布尔值;
(1)将其他的数据类型转换成string:
方法一:调用被转换数据类型的toString()方法,该方法不会改变原变量,会将转换结果返回。null与undefined没有toString( )方法,若调用他们的方法,会报错!!!
a=123;
console.log(typeof a);
b=a.toString();
console.log(typeof b);
方法二:调用String( ) 函数,并将在转换的数据作为参数传递给函数
a=123;
// 调用String ( )将a转换为字符串
a=String(a);
使用String( ) 函数做强制类型转换时,
对null和undefined,就不会调用toString( )方法
会将null直接转换为“null”;将undefined直接转换为“undefined”
对Number和boolean实际上就是调用的toString( )方法
方法三:任何数据类型转换成string,只需为任意数据类型加一个” ”
var c=123;
c=c+“ ”
(2)将其他数据类型转换为Number
方法一:使用Number( ) 函数,将a转换成Number类型
字符串--->数字
- 若是纯数字的字符串,则直接将其转换为数字
- 若字符串中有非数字的内容,则转换为NaN
- 若字符串是一个空串或者是一个全是空格的字符
布尔--->数字
true转成1 false转成0
Null--->数字 0
Undefined--->数字 NaN
方法二:这种方式专门用来对付字符串
-parseInt( ) 把一个字符串转换成一个整数
可以将一个字符串中的有效的整数内容去出来,转换成Number
-parseFloat( ) 把一个字符串转换成一个浮点数
与parseInt()作用一样,不同:可以获得有效的小数
若对非string使用parseInt( )和parseFloat( ),会将其先转换成String后操作
在JS中需要表示16进制的数字,则需要以0x开头,输出以16进制输出。
表示8进制的数字,则以0o开头
表示2进制的数字,则以0b开头,但不是所有的浏览器都支持
(3)将其他的数据类型转换成boolean型:(0,NaN),undefined,Null--false;其他数,空串--true
方法一:使用Boolean( )函数
a=Boolean( )
3. 运算符:操作符
通过运算符对一个或多个值进行运算,获取运算结果
typeof就是运算符,可以获得一个值的类型,会将该值的类型以字符串的形式返回
(number,string,boolean,undefined,object)
算数运算符:+-*/%
当对非number类型的值进行运算时,会将这些值转换成number然后再计算
任何值和NaN做运算都得到NaN
加法运算:任何值和字符串做加法运算都先转换成字符串,然后和字符串做拼串的操作
r=2+null; //2
result=true+false; //1
result=true+1; //2
r=”123”+”456” //字符串相加--拼串组合
r=123+”1”;
r=true+”hello” //truehello
减法运算 :任何值与number做减法,全部转换成number
result=a-true; //1234-1=1233
result=a-’1’; //1233
乘法运算 :任何值与number做乘法,全部转换成number
result=a*true; //1234-1=1233
result=a*’2’; //2468
除法运算 :任何值与number做除法,全部转换成number
result=a/true; //1234
result=a/’2’; //617
注意:任何值与number做-*/运算时都会自动转换成number
可以通过将一个值-1,/1,*1将其转换成number====原理与Number( )相同,但更加简单。
任何值与string做+运算时都会自动转换成string
可以通过将一个值+‘ ’将其转换成string====原理与String( )相同,但更加简单。
% 取余的作用:
1、可以拿到余数
2、可以拿到一个范围
任何的一个数对78取余,余数永远是在0~77之间 包含0和77 (num)%78 + 1
- 运算优先级:r=1+2+’3’----’33’; r=’3’+1+2----312
- 一元运算符:只需要一个操作数
+ 正号:对数值无影响
对于非number类型的值,对一个其他的数据类型+,可将其转换为number,原理与Number( ) 相同。例如:+‘2’==2;+true==1
- 负号:对数字进行取反
对于非number类型的值,会将它先转换为number,然后运算
注意:var result=1+ +’2’+3;
Console.log(‘result=’+result)
4. 自增 自减运算符
自增++:通过自增可以使变量在自身的基础上增加1
自增分成两种:后++(a++),前++(++a)
无论是a++,还是++a,都会立即使原变量的值自增1
不同:a++和++a的值不同
a++值:等于原变量的值(自增前值);++a值:等于原变量的值(自增后值)
var a=3;
a++;
console.log(a); //a=4
自减--:通过自减可以使变量在自身的基础上减1
自减分成两种:后--(a--),前--(--a)
a--值:等于原变量的值(自减前值);--a值:等于原变量的值(自减后值)
var n1=10;
var n2=20;
var n=n1++;
console.log(‘n=’+n); //n1=11,n1++=10=n //10
console.log(‘n1=’+n1); //11
n=++n1;
console.log(‘n=’+n); //n1=12 n=12 //12
console.log(‘n1=’+n1); //12
n=n2--; //n2=19 n=20
console.log(‘n=’+n) //20
console.log(‘n2=’+n2); //19
n=--n2; //n2=18 n=18
console.log(‘n=’+n); //18
console.log(‘n2=’+n2); //18
5. 逻辑运算符
&& || ! (与或非)
非运算:对一个布尔型进行取反;可以将任意数值取二次反,将其转换成布尔值。
var a=10;
result=!!a;
console.log(result); //true
console.log(typeof result); //boolean
与运算:对符号两侧的值进行与运算并返回结果
若二个值为true则返回true
var result= true && true;
console.log(result);
JS的与属于短路的“与”,若第一个值为false,不会看第二值。
或运算:对符号两侧的值进行或运算并返回结果
有对则对,就返回true;都为false,就返回false
JS的与属于短路的“或”,若第一个值为true,不会看第二值
- && ||非布尔值的情况
对非布尔值进行与或运算时,会向将其转换为布尔值,然后再运算,并且返回原值
与
若两个值都为true,则返回后面的值
var result= 1&&2; //2
console.log(result);
若0与正数:返回0
var result= 0&&2; //0
console.log(result);
若两个值都为false,则返回前面的值
var result= NaN&&0; //NaN
console.log(result);
若第一个值true,则返回第二个值;若第一个值false,则返回第一个值
或
若第一个值true,则返回第一个值;若第一个值false,则返回第二个值
6. 赋值运算符
= 可以将符号右侧的值赋值给符号左侧值的变量 +=////-=///*=/// /= /// %=
var a=2;
a+=4;
console.log(a); //a=6
7. 关系运算符
> < >= <= == != === !==
返回true/false
非数值情况:对于非数值进行比较时,会将其转换为数字然后再比较。
1>true:false
1≥true:true
1>’0’:true
10>’Hello’:false 任何值跟null比较都是false
10<null:false
true>false:true
特殊情况:符号两端的值都是字符串时,不会将其转换为数字进行比较,而会分别比较字符串中字符的Unicode编码
‘11’<’5’:true-----一位一位进行比较
- Unicode编码: \u四位编码(转义字符输入unicode)---十六进制
网页中:&#编码---十进制;
<h1 style="font-size: 200px;">☠</h1>
相等运算符==
console.log(1==2) //false
console.log(1=="1") //true 当使用==比较时,会进行类型转换成相同类型,再比较(大部分:转换成number)
全等===
不会转换成相同的类型,直接比较
注意:undefined衍生自null:两个值作比较时,会返回true;
console.log(undefined==null) //true
NaN不和任何值相等,包括自身
判断b值是否是NaN:可以通过isNaN( )函数来判断一个值是否是NaN
不相等!=
不相等返回true;相等返回false
console.log(1!="1") //false
不全等!==
不会转换成相同的类型,直接比较
8. 三元运算符:条件运算符
语法: 条件表达式?语句1:语句2;
执行流程:条件运算符在执行时,首先对条件表达式进行求值
若该值为true,则执行语句1,并返回执行结果
若该值为false,则执行语句2,并返回执行结果
false?alert('失败'):alert('成功');
// 获取a,b中的最大值
var a=3;
var b=34;
max=a>b?a:b;
// 获取a,b中的最大值
var a=3;
var b=34;
max=a>b?a:b;
// 获取a,b,c中的最大值
var a=3;
var b=34;
var c=54;
max=a>b?a:b;
max=max>c?max:c;
console.log(max)
若条件的表达式的求值结果是一个非布尔值,会转换成布尔值,然后再运算。
9. 运算符的优先级
16 |
() |
15 |
++、-- |
14 |
!、~、+(单目)、-(单目)、typeof、void、delete |
13 |
%、*、/ |
12 |
+(双目)、-(双目) |
11 |
<<、>>、>>> |
10 |
<、<=、>、>= |
9 |
!=、、!、=== |
8 |
& |
7 |
^ |
6 |
| |
5 |
&& |
4 |
|| |
3 |
?: |
2 |
=、+=、-=、*=、/=、%=、<<=、>>=、>>>=、&=、^=、|= |
1 |
, |
10. 语句
在JS中可以使用{ }来为语句进行分组,同一个{ }的语句称为一组语句,要么都执行,要么都不执行。一个{ }中的语句称为一个代码块。代码块只分组,没有其他用途。
JavaScript基础-02的更多相关文章
- javascript基础02
javascript基础02 1.数据类型 数据类型的描述在上篇的扩展中有写到链接 由于ECMAScript数据类型具有动态性,因此的确没有再定义其他数据类型的必要.这句话很重要. 如果以后再数据类型 ...
- javaScript基础-02 javascript表达式和运算符
一.原始表达式 原始表达式是表达式的最小单位,不再包含其他表达式,包含常量,直接量,关键字和变量. 二.对象和数组的初始化表达式 对象和数组初始化表达式实际上是一个新创建的对象和数组. 三.函数表达式 ...
- JavaScript学习02 基础语法
JavaScript学习02 基础语法 JavaScript中很多基础内容和Java中大体上基本一样,所以不需要再单独重复讲了,包括: 各种算术运算符.比较运算符.逻辑运算符: if else语句.s ...
- JavaScript基础第02天笔记
JavaScript基础第02天 1 - 运算符(操作符) 1.1 运算符的分类 运算符(operator)也被称为操作符,是用于实现赋值.比较和执行算数运算等功能的符号. JavaScript中常用 ...
- JavaScript基础视频教程总结(101-110章)
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...
- JavaScript基础视频教程总结(071-080章)
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...
- JavaScript基础视频教程总结(031-040章)
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...
- JavaScript 基础 (变量声明, 数据类型, 控制语句)
创建: 2017/09/16 更新: 2017/09/24 更改标题 [JavaScript 概要]-> [JavaScript 基础] 完成: 2017/09/25 更新: 2017/10/0 ...
- JavaScript基础入门06
目录 JavaScript 基础入门06 Math 对象 Math对象的静态属性 Math对象的静态方法 指定范围的随机数 返回随机字符 三角函数 Date对象 基础知识 日期对象具体API 构造函数 ...
随机推荐
- 集训作业 洛谷P1100 高低位交换
这个题简单来说就是把一个数转成32位的2进制数,不够的补0.然后把这个数的前半部分和后半部分互换,再计算结果. 思路简单明了,接下来是代码: #include<iostream> #inc ...
- 大厂程序员教你如何学习C++(内附学习资料)
目前准备面试同学都知道,C++是百度和腾讯的主流开发语言,而java是阿里的主流开发语言. 对于初学者来说,也不用纠结究竟学习c++还是java 其实只要好好掌握好一门即可,另一门即可融会贯通 因为我 ...
- echarts爬坑 : 怎么Line折线图设置symbol:none后Label不见了?
用 echarts 时遇到了一个奇奇怪怪的问题. 这是一张折线图. 本来这个图是有数字显示的. series : [ { name:'搜索引擎', type:'line', stack: '总量', ...
- [开源硬件DIY] 自制一款精致炫酷的蓝牙土壤温湿度传感器,用于做盆栽呵护类产品(API开放,开发者可自行DIY微信小程序\安卓IOS应用)
目录 前言: 1. 成品展示 2. 原理图解析 3. pcb设计 4. 嵌入式对外提供接口 4.1 蓝牙广播 4.2 蓝牙服务和属性 4.3 数据包格式 4.4 数据通信模型 重要 . 前言: 本期给 ...
- Python基础教程(第3版)PDF高清完整版免费下载|百度云盘
百度云盘:Python基础教程(第3版)PDF高清完整版免费下载 提取码:gkiy 内容简介 本书包括Python程序设计的方方面面:首先从Python的安装开始,随后介绍了Python的基础知识和基 ...
- 2020数字中国创新大赛虎符网络安全赛道-pwn count
比赛结束前半个小时才看的题,等我做出来比赛已经结束了.难受Orz 本地文件无法执行,远程调试. 题目大概意思就是让你计算200道四则运算.(实际上格式是固定的.先乘一次然后再加两次).200道题都正确 ...
- intellij IDEA导入maven项目
一.导入maven项目 1.打开intellij idea,点击File(如下图1),然后点击Open(如下图2)
- pandas之Seris和DataFrame
pandas是一个强大的python工具包,提供了大量处理数据的函数和方法,用于处理数据和分析数据. 使用pandas之前需要先安装pandas包,并通过import pandas as pd导入. ...
- 11-Pandas之排序(df.sort_index()、df.sort_values()、随机重排、随机采样)
排序是一种索引机制的一种常见的操作方法,也是Pandas重要的内置运算,主要包括以下3种方法: 排序方法 说明 sort_values() 根据某一列的值进行排序 sort_index() 根据索引进 ...
- 7.9 NOI模拟赛 C.走路 背包 dp 特异性
(啊啊啊 什么考试的时候突然降智这题目硬生生没想出来. 容易发现是先走到某个地方 然后再走回来的 然后在倒着走的路径上选择一些点使得最后的得到的最多. 设\(f_{i,j}\)表示到达i这个点选择的价 ...