一. 基本的运算符
1.比较运算符(这个比较特殊 其他的运算符后期再更)
== 等于
=== 绝对等于(值和类型均相等)
!= 不等于
!== 不绝对等于(值和类型有一个不相等,或两个都不相等)
直接上代码:
var x = 5;
var y = "5";
document.write("x的类型为:" + typeof(x) + "<br/>");
document.write("y的类型为:" + typeof(y) + "<br/>");
document.write("x == y :" + (x==y) + "<br/>");
document.write("x === y : " + (x===y) + "<br/>")
document.write("x != y :" + (x!=y) + "<br/>")
document.write("x !== y : " + (x!==y) + "<br/>")
运行结果:
2.算数运算符
+ : 加法运算
- 当number 和其他数据类型做加法运算时,会先将他们的数据类型转为number,再做运算。 (字符串除外!) 举例1
- 任何数据类型和字符串做加法运算时, 都会进行拼串操作 举例2
- 可以用任何数据类型 + ""(空串),进行数据类型转换!!! {这是一种隐式类型转换} 举例3
/ : 除法运算
- 任何值做 -(减法)、 *(乘法)、 /(除法)运算时,都会先转换为number再运算;
可以利用这一特点,将其他数据类型转换为number
只需要在其他数据类型后进行 -0 、 /1 、 *1操作就可以完成这一隐式类型转换; 举例4
任何值和NaN做运算 结果都为NaN
// 加法运算 举例1
var a = 123;
var b = "1";
console.log(a + b); // 输出1231
// 加法运算 举例2
var a = null;
var b = "1";
console.log(a + b); // 输出 null1
// 加法运算 举例3
var a = 123;
var b = "";
var c = a + b;
console.log(c)
console.log(typeof c); // 输出 123 string
// 举例4
var a = "123";
var b = 1;
var c = a / b;
console.log(c)
console.log(typeof c); // 输出 123 number
3.一元运算符
+ :在其他数据前加上+,即可将其转换为number 举例1
- :在其他数据前加上-,即可将其转换为number, 但是变为负数
// 举例1
var a = "123";
console.log(+a);
console.log(typeof a);
4. == 相等运算
- 当符号两边的数据类型不同时。 会先进行数据类型转换。 再进行比较;
- NaN 和任何值都不相等 , 需要调用isNaN()判断一个值是否是NaN,
如果是NaN,则返回true,否则返回false;
- 因为undefined是衍生自null,所以它们两个进行==比较时, 返回 true;
5.非布尔值的与或运算
&& :
- 如果两个值都是true ,则返回第二个值 举例1
- 如果两个值中有一个是false, 则返回靠前的false
- 如果两个值都为false, 则返回靠前的false
结论: 只要第一个值为false 则不会看后面的值
只要第一个值为true, 则必然返回第二个值 1 && 0
|| :
- 如果两个值都是true ,则返回第第一个值
- 如果两个值中有一个是false, 则返回true的值
- 如果两个值都为false, 则返回第二个值 0 || NaN --> NaN
// 举例1
console.log(1 && 3); //输出 3
二. 六大数据类型
数据类型:
三. typeof 运算符
举例如下
var str = "123a";
console.log(typeof str);
// 输出结果为: string
四. 数据类型的转换
一共分为三大类,字符串(string)、Number、 布尔类型(Boolean)。
一. 转换为字符串类型 string
1. 调用该数据类型的toString()方法toString()方法不会对原来的变量造成影响
p.s. NULL, undefined 不能调用该方法 !!! 否则报错
2. 使用String()函数,将需要的数据作为参数传入即可number和boolean使用String() 函数,
其实就是调用他本身
// 方式一
var abc = true;
abc = abc.toString();
console.log(abc, typeof abc);
// 输出 true string
//方式二
var abc = true;
abc = String(abc);
console.log(abc, typeof abc);
// 输出 true string
二. 转换为Boolean类型 将其他数据类型转换为 Boolean , 通过Boolean()函数转换
- 字符串 --> Boolean : 除了空串,其余都是true
- Number--> Boolean : 只有NaN , 0为false, 其余都是true
- null 和 undefined --> Boolean : 都是false
// 字符串 --> Boolean
var str = "123";
str = Boolean(str);
console.log(str);
// 输出 true
// Number--> Boolean
var num = NaN;
num = Boolean(num);
console.log(num);
// 输出 false
// null 和 undefined --> Boolean
var nul = null;
nul = Boolean(nul);
console.log(nul);
// 输出 false
三. 转换为Number类型 ,通过Number() 函数转换
1. 字符串 --> Number
- 如果该字符串是纯数字的字符串 "123" , 则直接转换为对应的数字;
- 如果该字符串是非纯数字的字符串 "123aaa" , 则转换为 NaN;
- 若果该字符串是空串 "" 或空格字符串" " ,则转换为 0 ;
2. 布尔值 --> Number
- true 转为 1 false 转为 0
3. null --> Number : 0
4.undefined --> Number : 0
-
parseInt() : 将合法的字符串转换为整数。 只取整数,碰到非法的字符就停止执行
str = “123abc” --> str = parseInt(str) --> 输出为 123
str = “1ac2s3abc” --> str = parseInt(str) --> 输出为 1 -
parseFloat() : 将合法的字符串转换为字符串 只针对于字符串
暂时先更到这… 后期再更~