1、数据类型
1、查看数据类型
1、语法
typeof() 或 typeof
ex:
var num = 35;
console.log(typeof(num));
2、数据类型的转换
1、隐式转换
自动进行转换
1、字符串 + 数字 :将数字转换为字符串
ex
1、"你好" + 123 :"你好123"
2、"78" + 15 :"7815"
3、var r = "78"+15+13;
r : "781513"
4、var r = 15+13+"78";
r : "2878"
2、数字 + 布尔值 :将布尔值转换为数字
ex:
1、25 + true :26
2、38 * false :0
3、字符串 + 布尔值 :将布尔值转换为字符串
ex:
1、"你好" + true :"你好true"
2、"Hello" + false : "Hellofalse"
4、布尔值 + 布尔值 :将布尔值转换为数字
ex:
1、true + false : 1
2、强制转换 - 转换函数
"78" + 15,问题:想将"78"转换为数字,该怎么办
1、toString()
将任意类型的数据转换成字符串
语法:
var 结果 = 数据.toString();
var r = "张".charCodeAt().toString(16);
2、parseInt()
Integer : 整数
作用:将指定的数据转换为整数
语法:
var 结果 = parseInt(数据);
ex:
1、var r = parseInt(78.5);
r : 78
2、var r = parseInt("78");
r : 78
3、var r = parseInt("78ABC");
r : 78
4、var r = parseInt("ABC78");
r : NaN (Not a Number)
3、parseFloat()
作用:将任意类型的数据转换为 小数
ex:
1、var r = parseFloat("38.5");
r : 38.5
2、var r = parseFloat("38.5你好吗!")
r : 38.5
3、var r = parseFloat("你好吗38.5");
r : NaN
4、Number()
作用:将任意类型的数据转换为数字(整数或小数)
注意:如果转换的数据中包含非数字的字符,则返回NaN
ex:
1、var r = Number("35");
r : 35
2、var r = Number("35.5");
r : 35.5
3、var r = Number("Hello 35.5");
r : NaN
4、var r = Number("35.5Hello");
r : NaN
2、运算符 和 表达式
1、什么是表达式
表达式是由运算符 和 操作数来组成的式子
var result = 35 + 28;
console.log(a = 35); //结果为 35
b=a=35; 正确的表达式,a 和 b 的值,都是35
2、运算符
1、算术运算符
+,-,*,/,%,++,--
优先级:
++,-- 最高
*,/,% 居中
+,- 最低
++ : 自增运算符
在自身基础上做+1的操作
++ 做前缀:
var i = 10;
console.log(++i); // 11
先对i进行+1操作,然后再使用i的值(先自加,再取值)
++ 做后缀:
var j = 10;
console.log(j++); // 10
console.log(j); // 11
先使用j的值,然后再对j进行+1操作(先取值,再自加)
-- : 自减运算符
在自身基础上做-1的操作
ex:
1、var i = 10;
console.log(i++);//输出:10 变为:11
console.log(++i);//12 变为 :12 输出 12
console.log(i++);//12 输出 :12 变为 13
console.log(i++);//13 输出 :13 变为 14
console.log(i);//14 输出 :14
2、
var i = 10;
10 10(11)(12)12 12(13) (14)1414
var r = i + i++ + ++i + i++ + ++i + i;
10+10+12+12+14+14 :72
//72,78,
2、关系运算符(比较运算符)
>,<,>=,<=,==,!=,===,!==
优先级:
1、>,<,>=,<=
2、==,!=,===,!==
== : 判断等于
= : 赋值
!= : 判断两个数据是否不相等,不等为true
=== : 判断数值和数据类型是否都一直
var n1 = 35;
var s1 = "35";
n1 == s1 : true
n1 === s1 : false
ex:
1、3 > 10 : false
2、"3" > 10 : false
3、"3a" > 2 : false
4、"3" > "10" : true
5、"张三丰" > "张无忌" : false
注意:
1、两个操作数,如果一个是数字,一个是字符串的话,默认会将字符串通过 Number() 转换成数字,再做比较
2、NaN
NaN 与 任何数据做 != ,结果都为 true
其它操作全是 false
3、字符串 与 字符串进行比较时,实际上上比较的是每位字符的Unicode码
1、"3" > "10"
实际上比较的是 3 跟 1 的Unicode码的大小
2、"张三丰" > "张无忌" : false
实际上比较的是 "三" 跟 "无" 的unicode码的大小
张(24352)三(19977)丰
张(24352)无(26080)忌
3、35 > "张三丰"
结果:false
4、判断一个数据是否为数字
NaN 不能使用 == 或 != 来进行判断
想判断一个数据是否为数字,使用以下函数
isNaN() : 判断一个数据是否为 非数字
如果为非数字的话,返回true
否则(是数字) ,返回 false
语法:
var 结果 = isNaN(数据);
ex:
1、var r = isNaN("35.5");
false
2、var r = isNaN("35你好");
true
3、var r = isNaN("你好35");
true
4、var r = isNaN(35)
false
3、逻辑运算符
&&,||,!
&& : 两个条件都为true,整个表达式为true
|| : 两个条件,有一个为true,整个表达式就为 true
! : 对现有条件结果,取反。非真即假,非假即真
短路逻辑:
1、短路逻辑 &&
条件1 && 条件2
当第一个条件为false时,整体表达式结果就是false,就不会判断执行第二个表达式
如果条件1为true的话,那么就要继续判断执行第二个条件
条件 && 操作
如果操作中有多条语句要执行,则使用(),括起来,并用 , 隔开
2、短路逻辑 ||
条件1 || 条件2
当第一个条件为true时,就不再执行条件2,整个结果为 true
当第一个条件为false时,则继续执行第二个条件
条件1 || 操作
4、位运算符
1、位运算符
是将数字先转换为二进制,再进行操作
2、详解
1、<<
按位左移,将数字变大
2、>>
按位右移,将数字变小
3、&
按位与,判断奇偶性可以使用按位&
将任意数字与1做按位与操作,结果为1,是奇数,结果为0,是偶数
ex:
35 & 1 : 1 -> 奇数
38 & 1 : 0 -> 偶数
4、|
按位或,对小数取整时使用
将任意数字与0做按位或操作,结果为 保留整数部分
ex:
35.857 | 0 : 35
5、^
按位异或,交换两个数字时使用
var a = 15;
var b = 18;
a = a ^ b; 结果:29
b = b ^ a; 结果:15
a = a ^ b; 结果:18
5、赋值运算符 & 扩展的赋值运算符
1、赋值运算符 :=
2、扩展的赋值运算符
+=,-=,*=,/=,%=,^= ... ...
a+=b; => a = a + b;
a^=b; => a = a ^ b;
ex:
使用 扩展的赋值运算符,简化下列操作
a = a ^ b; ( a^=b;)
b = b ^ a; ( b^=a;)
a = a ^ b; ( a^=b;)
6、条件运算符(三目运算符)
单目(一元)运算符 :只需要一个操作数的运算符
++,--,!
ex:
a++
++a
双目(二元)运算符 :需要两个操作数的运算符
+,-,*,/,%,>,<,>=,<=,==,!=,==,!==,&&,||,<<,>>,&,|,^
三目(三元)运算符 :需要三个操作数的运算符
条件运算符 ?:
语法:
条件表达式?表达式1:表达式2;
条件运算符的嵌套,在表达式1 和 表达式2,可以再继续使用条件运算符
var num = 5;
console.log(5 & 1 == 1);
结果:1
var num = 5;
console.log((5 & 1) == 1);
结果:true
3、函数 - function
1、什么是函数
函数是一段预定义好,可以被反复执行的代码块
预定义:提前声明好,并非马上执行
代码块:可以包含多条可执行的语句
反复执行:允许被多次使用(调用)
使用过的函数:
parseInt() :有参数,有返回值
parseFloat() :有参数,有返回值
Number() :有参数,有返回值
console.log() :有参数,无返回值
alert() :有参数,无返回值
prompt() :有参数,有返回值
2、定义和使用函数
1、普通函数的声明 和 调用
1、声明
function 函数名(){
//函数体 - 若干条可执行的语句
}
2、调用
在任意的JS位置处,可以通过
函数名();
对函数进行调用
2、带参数 带返回值的函数
语法:
function 函数名(形参列表){
return 值;
}
1、形参列表
形参:形式参数,定义函数时定义的参数,如果是多个参数的话,用 "," 隔开即可
2、返回值
在函数体内,要带给函数体外的一个数据
调用:
1、在JS的任意位置处通过 函数名(); 调用函数
2、如果函数有参数的话,则需要传递参数(实参)给函数。
3、如果函数有返回值的话,则可以在函数调用处,通过一个变量来接收返回值