JavaScript-基础类型和运算符
JavaScript-基础类型和运算符
P02.稍微了解
1、js代码需要编写到script标签中
<script type="text/javascript">
此处输入Js代码内容
</script>
2、控制浏览器弹出一个警告框
alert("弹出内容");
3、让计算机在页面中输出一个内容,document.write("页面输出内容")可以向body中输出一个内容
document.write("document.write页面输出内容");
4、向控制台输出一个内容
console.log("console.log输出内容");
console.log("年纪="+age);
P03.js代码编写位置
1、可以写在title文件下的script标签中
<script type="text/javascript">
此处输入Js代码内容
</script>
2、Js可以写在标签中,如onclick标签或href标签(耦合,不推荐)。
<!--
可以将JS代码编写至标签中。
点击按钮后,js代码才会执行
-->
<button onclick="alert('你点我干嘛')">点我一下</button>
<a href="javascript:alert('你又点我')">来啊,点我啊</a>
3、也可以写在外部.js文件中,通过script标签引入(优选方式)。
<script type="text/javascript" src="jscirpt文件路径">
写在外部文件中可在不同界面中同时引用,也可以利用浏览器的缓存机制。
Script标签中一旦引入外部文件,就不能再编辑代码,即使编辑代码,浏览器也会选择忽略。
如需要再编辑代码,则可以再创建啊一个新的script标签用于编辑内部代码
<script type="text/javascript" src="js/jscirpt文件名.js">
P04基本语法
1、注释:
单行注释
//单行注释
多行注释
/*
* 多行注释
*/
<!--
多行注释
-->
2、严格区分大小写
3、每一条语句以分号;结尾
P05字面量(变量中不可变的值)和变量
1、字面量:不可变的值(很少用)
2、变量:可以改变值x=1
3、声明变量 x:
var x;
Var x,y;
4、为变量x赋值:
x=5
5、声明且赋值:var x=5;var m=1,n=2;
P06标识符
1、命名规则:
- 标识符可包含数字、字符、下划线
- 不可以以数字开头。
- 便师傅可以为关键字或保留字
- 标识符一般采用驼峰命名法:首字母小写,每个单词开头字母大写,其余字母小写
P07-14数据类型
1. 六种数据类型:
(1) String字符串
(2) Number 数值
(3) Boolean 布尔值
(4) Null空值
(5) Undefined未定义
(6) Object 对象
其中前五种为基本数据类型,object属于引用数据类型
2. String字符串
String字符串在js中需要使用双引号或单引号引起来,
var str1="lanyuan"
Var str2;
Str=”我说:\”今天天气不错!\””
在字符串中我们可以使用\作为转义字符,当表示一些字符时可使用\转义。
如:
\”表示”
\’表示’
\n表示换行
\t表示制表符
输出变量字符串str
var str="lanyuan-nihao";
alert(str);//输出变量字符串str
Str=2345;
alert(“str”);//输出字面量字符串str
3. Number数值
1、所有数值都是number类型。包括整数和浮点数(小数)
2、数字最大或小值:number.MAX_VALUE 或 number.Min_VALUE
如果number中的数字超过最大值,则返回一个infinity(无穷),使用typeof检查也会显示number
infinity(正无穷)
-infinity(负无穷)
3、NaN(not a number)表示不是一个数值,使用typeof检查也会显示number
4、在js中整数运算基本可以保证精确。但是进行浮点数计算,可能会得到不精确的结果。
所有千万不要使用JS进行对精确度比较高的计算,如钱
4. Boolean布尔值
主要为逻辑判断
5. Null空值(表示未空的对象)
使用typeof检查也会显示object
6. Undefined未定义(声明变量却未赋值)
使用typeof检查也会显示undefined
7. 检查变量类型:typeof运算符
语法:typeof 变量名
结果:
检查字符串时,返回结果为string
检查数值时,会返回number
如:
console.log(typeof str)
8. 强制转换类型string(使用tostring()方法或string()函数)
1、方式一:调用被转换数据类型的tostring()方法
调用xxx的yyy()方法。就是xxx.yyy()
该方法不会影响原变量,他会将转换后的结果返回
Var b=a.tostring();//将a装换成string类型并且将结果赋值给b
注意:
对于null,undefined两个数值没有tostring方法
2、方式二(优先):调用string()函数,将a转换成字符串。
A=String(a);
3、方式三:
var c=123;
C=c+””;
9. 强制转换类型number(使用number()函数)
1、方式一:调用number()函数将a转换为number类型
2、字符串转数字
(1) 如果纯数字的字符串,直接转换
(2) 如果字符串有非数字的内容,将转换为NaN
(3) 如果字符串为空串或一个全为空格的字符,将转换为0
3、Boolean转数字
(1) True转换为1
(2) False转换为0
4、Null转数字
Null=0
5、Undefined转换数字
Undefined=NaN
6、方式二:针对string转换
(调用parseInt()将一个字符串中有效的整数内容取出来遇到非数字字符将不再读取下去)
如果对非string型转换,将会先转换成string类型,再转换成number型
//整型
var a="1234hj233jj";
a=parseInt(a);
console.log(a);
//浮点型
var a="123.4hj233jj";
a=parseFloat(a);
console.log(a);
10. 强制转换类型boolean
使用Boolean()函数
1、数字转boolean
(1) 除了0和NaN,其余都是true
2、字符串转boolean
(1) 除了空串其余都是true
3、Null和undefined转boolean,都是false
4、对象转换Boolean也是true
P15-26运算符即操作符
通过运算符可以对一个或多个值进行运算,获取运算结果。如typeof运算符
1. 算数运算符(+、-、*、/、%)
1、对非number的值进行运算时,会将这些值转换为number值,在进行计算。
2、任何值和NAN运算都得NaN。
3、加法+:
(1) +可以对两个值进行加法运算,并将结果返回。
(2) +时,任何类型字符与字符串相加,相当于拼串,拼成一个串,并返回。相当于隐式的类型转换,由浏览器自动完成。
(3)
4、 减法-
-可以对两个值进行减法运算,并将结果返回。
对非number的值进行运算时,会将这些值转换为number值,在进行计算。
5、乘法*
*可以对两个值进行乘法运算,并将结果返回。
对非number的值进行运算时,会将这些值转换为number值,在进行计算。
6、除法/
*可以对两个值进行除法运算,并将结果返回。
对非number的值进行运算时,会将这些值转换为number值,在进行计算。
2. 一元运算符(+、-正负号)
1、只需要一个操作数
2、正号+
(1) 正号不会对数字产生任何影响
3、负号-
(1) 负号会对数字进行取反
(2) 对于非number类型的值会先转换为number,然后再运算。
(3) 可以对一个其他数据类型使用+,将其转换为number。原理和number()函数一样
3. 自增和自减
1、自增a++和++a
(1) 相同点:a++和++a都会使原变量的值自增1
(2) 不同点:a++和++a表达式值不同
a++的值等于原变量自增前的值
++a的值等于原变量自增后的值
2、自减a--和--a
(1) 相同点:a--和--a都会使原变量的值自减1
(2) 不同点:a--和--a表达式值不同
a--的值等于原变量自减前的值
--a的值等于原变量自减后的值
4. 布尔值逻辑运算符(!非、&&与、||或)
1、!非
(1) !可以用来对一个值进行非运算
(2) 非运算:对布尔值进行取反
true变为false,false变成true
(3) 对值取反两次不会有变化
对非布尔值进行取反,则将其转换为布尔值,再取反
利用该特点将一个其他数据类型转换为布尔型。
可以为任意一个数据类型取反凉席,将其转换为布尔值。
2、&&与(全部true为true)
(1) &&可以对符号两侧的值进行与运算并返回结果。
(2) 运算规则:
两个值中两个为true才返回true
(3) 短路与
有一个false就不会检查第二个值
3、||或(一个true为true)
(1) ||可以对符号两侧的值进行或运算并返回结果。
(2) 运算规则:
两个值中只要有一个值为true就返回true
5. 非布尔值的与或运算
1、&&与(全部true为true)
(1) &&可以对符号两侧的值进行与运算并返回结果。
(2) 运算规则:
① 非布尔值与运算需要将其转换为boolean值,在进行运算。
② 两个值中两个为true才返回值。返回的第二个值。
③ 两个值中有一个为false才返回值。返回的第一个值。
(3) 短路与
有一个false就不会检查第二个值
2、||或(一个true为true)
(1) ||可以对符号两侧的值进行或运算并返回结果。
(2) 运算规则:
① 非布尔值与运算需要将其转换为boolean值,在进行运算。
② 第一个值为true则直接返回第一个值。
③ 第一个值为false则直接返回第二个值。
(3) 两个值中只要有一个值为true就返回true
6. 赋值运算符(+=、-=、*=、/=、%=)
如a+=5//等价于a=a+5
7. 关系运算符(>、>=、<、<=)
1、可比较两值之间的关系,关系成立——true,关系不成立——false。
2、非数值情况比较。,会将其转换为数值,再比较。
3、任何值和NaN比较都是false
4、特殊情况:
(1) 若比较的两端为字符串,则不会转换为数值。而是通过编码(参考Unicode编码表
(2) )进行比较。
(3) 比较编码时是一位一位进行比较。如果一样,则进行比较下一位。可借用其对英文进行排序。可能出现1111<5的结果,故结果可能不准确。
(4) 所有比较两个字符串时,一定要转型
8. Unicode编码表
1、在js中使用转义字符输入unicode编码时,需要加\u
如编码2620
则\u2620
在网页中使用unicode编码,加&#,且编码需要为10进制。
9. 相等运算符(==、!=、===、!==)
1、相等==:
(1) 比较两值是否相等
(2) 相等——true,不相等——false
(3) 使用==计算时,若值的类型不同,则会自动进行类型转换,将其转换为相同的类型在计算。
(4) Undefined衍生自null。所有两值作比较时,返回true
(5) NaN不和任何值相等,包括本身
(6) 判断一个值是否是NaN,可以通过isNaN()函数进行判断,是则返回true,否返回false.
2、不相等!=
(1) 比较两值是否不相等
(2) 相等——true,不相等——false
(3) 使用==计算时,若值的类型不同,则会自动进行类型转换,将其转换为相同的类型在计算。
(4) Undefined衍生自null。所有两值作比较时,返回true
(5) NaN不和任何值相等,包括本身
(6) 判断一个值是否是NaN,可以通过isNaN()函数进行判断,是则返回true,否返回false.
3、全等===
不进行类型转换,其他与==相同。
4、不全等!==
不进行类型转换,其他与!=相同。
10. 条件运算符(三元运算符)
1、语法:条件表达式?语句1:语句2;
2、规则:
(1) 先对条件表达式求值,
(2) 若返回值为true则执行语句1,并返回语句结果
(3) 若返回值为false则执行语句2,并返回语句结果
3、注意:当表达式返回值为非布尔值,系统会将其自动转换为布尔值在计算