一、自增自减
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>自增自减</title>
<script type="text/javascript">
/*
*自增 ++
* -通过自增可以使变量在自身的基础上增加1
* -对一个变量自增以后,原变量的值会立即自增1
* -自增分为两种:后++(a++)和前++(++a)
* 无论是a++ 还是++a,都会立即使原变量的值自增1
* 不同的是a++ 和++a的值不同
* a++的值等于原变量的值(自增前的值)
* ++a的值等于原变量自增后的值(原变量的新值,自增后的值)
* 自减 --
* - 通过自减可以使变量在自身的基础上减1
* - 自减分为两种:后--(a--)和前--(--a)
* 无论是a-- 还是--a 都会立即使原变量的值自减1
* 不同的使a--和--a的值不同
* a-- 是变量的原值(自减前的值)
* --a 是变量的新值(自减以后的值)
*/
var num = 10;
// num--;
// --num;
console.log(num--);
console.log("num ="+num);
// var a = 1;
// a = a+1;
// a++; //使a自增1
// a++;
// ++a;
// ++a;
// console.log(a++);
// console.log("++a = " + ++a);
// console.log("a++ = " + ++a);
//
// console.log("a = "+a);
var c = 10;
//使c自增1
//第一次c++ 是在10的基础上自增
c++;
//第二次c++ 是在11的基础上自增
c++;
// console.log(c++);
var d = 20;
// console.log(++d);//21
// console.log(++d);//22
// var result = d++ + ++d +d;
d = d++;
/*
*var e = d++;
* d = e;
*/
// console.log("result =" +result)
// console.log("d ="+d);
</script>
</head>
<body>
</body>
</html>
二、一元运算符
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>一元运算符</title>
<script type="text/javascript">
/*
*一元运算符,只需要一个操作数
* + 正号
* - 正号不会对数字产生任何影响
* - 负号
* - 负号可以对数字进行负号的取反
* -对于非Number类型的值
* 他会先转换为Number,然后再运算
* 可以对一个其他的数据使用+ 来将其转换为number
* 它的原理和Number()函数一样
*/
var a = 123;
// a = +a;
a = -a;
a = true;
a = "18";
// a = -a;
a = +a;
// console.log("a = "+a);
// console.log(typeof a);
var result = 1 + +"2" +3;
console.log("result = " + result)
</script>
</head>
<body>
</body>
</html>
三、数值运算符
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>运算符</title>
<script type="text/javascript">
/*
*运算符也叫操作符
* 通过运算符可以对一个或多个值进行运算 ,并获取运算结果
* 比如:typeof就是运算符,可以用来获得一个值的类型
* 他会将该值的类型以字符串的形式返回
* number string boolean indefined object
*
* 算数运算符
* 当对非Number类型的值进行运算时,会将这些值转换为Number然后再运算
* 任何值何NaN做运算都得NaN
* +
* +可以对两个值进行加法运算,并将结果返回
* 如果对两个字符串进行加法运算,则会做拼串
* 会将两个字符串拼接成一个字符串,并返回
* 任何得值和字符串做加法晕眩,都会先转成为字符串,然后再和字符串做拼接操作
*
* -
* - 可以对两个值进行减法运算,并将结果返回
* *
* - 可以对两个值进行乘法运算
* /
* - 可以对两个值进行除法运算
* %
*/
var a = 123;
var result = typeof a;
// console.log(result);
// console.log(typeof a);
//console.log(typeof result);
result = a + 1;
a = a + 1;
result = 456+789;
result = true + 1;
result = true + false;
result = 2 + null;
result = 2 + NaN;
// result = "123" + "456";
result = "你好" + "大帅哥";
var str = "锄禾日当午," +
"汗滴禾下土。" +
"谁知盘中餐," +
"粒粒皆辛苦。";
// console.log(result);
result = 123 + "1";
// console.log(str);
result = true + "hello";
//任何值和字符串相加都会转换为字符串,并做成拼串操作
/*
*我们可以利用这一特点,来将一个任意的数据类型转换成String
* 我们只需要为任意的数据类型 + 一个”“ 即可将其转换成String
* 这是一个隐式的类型转换,有浏览器自动完成,实际上它也是调用String()函数
*/
var c = 123;
// c = String()
// c = c + "我是来把c变成字符串的";
c = c + "";
// c = String(c);
// c = null;
// c = c + "";
// console.log(result);
// console.log(typeof c);
// console.log("c = " + c);
result = 1 + 2 + "3"; //33
result = "1" + 2 + 3; //123
result = 100 - 5;
result = 100 - true;
result = 100 - "1";
result = 2 * 2;
result = 2 * "8";
result = 2 * undefined;
result = 4 / 2;
result = 3 / 2;
/*
*任何值做- * /运算都会自动转换为Number
* 我们可以利用这一特点做隐式
*/
// console.log("result = " + result);
var d = "123";
// d = Number(d);
d = d - 0;
result = 9 % 3;
result = 9 % 4;
result = 9 % 5;
// console.log(typeof d);
// console.log(d);
console.log("result = " + result);
// console.log(a);
</script>
</head>
<body>
</body>
</html>
四、转换为Boolean
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>转换为Boolean</title>
<script type="text/javascript">
/*
*将其他的数据类型转换为Boolean
* - 使用Boolean()函数
* - 数字 ---> 布尔
* -除了0和NaN,其余的都是true
* - 字符串 ---> 布尔
* - 除了空串,其余的都是true
* - null和undefined都会转换为false
*
* -对象也会转换为true
*
*/
var a = 123; //true
a = -123; //true
a = 0; //false
a = Infinity; //true
a = NaN; //false
//调用Boolean()函数将a转换为布尔值
a = Boolean(a);
a = "hello"; //字符串和汉字都转为true
a = Boolean(a);
a = null;
a = undefined;
a = Boolean(a);
console.log(typeof a);
console.log(a);
</script>
</head>
<body>
</body>
</html>
五、其他进制的数字
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>其他进制的数字</title>
<script type="text/javascript">
var a = 123;
/*
*在js中,如果需要表示16进制的数字,则需要以0x开头
* 如果需要表示8进制的数字,则需要以0开头
* 如果要表示2进制的数字,则需要以0b开头
* 但是不是所有的浏览器都支持
*/
//十六进制
a = 0x10;
a = 0xff;
a = 0xCafe;
a = 070; //八进制,输出56
// 二进制数字
// a = 0b10;
//像”070“这种字符串,有些浏览器会当成8进制解析,有些会当成10进制解析
a = "070";
//可以在parseInt()中传递一个第二个参数,来指定数字的进制
a = parseInt(a,8); //可以指定进制数
console.log(typeof a);
console.log(a);
console.log(a);
</script>
</head>
<body>
</body>
</html>
六、强制类型转换_Number
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>强制类型转换_Number</title>
<script type="text/javascript">
/*
*将其他数据类型转换为Number
* 转换方式一:
* 使用Number()函数
* - 字符串 --> 数字
* 1.如果是纯数字得字符串,则直接将其转换为数字
* 2.如果字符串中有非数字得内容,则转换为NaN
* 3.如果字符串是一个空串或者是一个全是空格的字符串,则转换为0
* - 布尔 --> 数字
* true 转成1
* false 转成0
* - Null --> 数字 == 0
*
* - undefined -- > 数字 NaN
*
* 转换方式二:
* - 这种方式专门用来对付字符串
* - parseInt() 把一个字符串转换为一个整数
* - parseFloat() 把一个字符串转换为一个浮点数
*
*/
// var a = "123";
// var a = "abc";
var a = " ";
//调用Number()函数来将a转换围为Number类型
a = Number(a);
// a = true;
a = false;
a = Number(a);
a = null;
a = Number(a);
a = undefined;
a = Number(a);
a = "123px";
// a = Number(a);
//调用parseInt()函数将a转换为Number
/*
*parseInt()可以将一个字符串中的有效的整数内容取出来
* 然后转换为Number
*/
a = parseInt(a);
/*
*parseFloat()作用和parseInt()类似,不同的是它可以获得有效的小数
*/
// a = "123.456";
a = "123.456px";
// a = parseInt(a);
a = parseFloat(a);
/*
*如果对非String使用parseInt()或parseFloat()
* 他会先将其转换为String,然后再操作
*/
a = true;
// a = parseInt(a);
// a = parseInt(true);
a = 198.23;
a = parseInt(a);
console.log(typeof a);
console.log(a);
</script>
</head>
<body>
</body>
</html>
七、强制类型转换
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script type="text/javascript">
/*
*强制类型转换
* - 指将一个数据类型强制转换为其他类型的数据
* - 类型转换主要指,将其他的数据类型,转换为
* String Number Boolean
*
*/
/*
* 将其他的数据类型转换为String
* 方式一:
* - 调用被转换数据类型的toString()方法
* - 该方法不会影响到原变量,它会将转换的结果返回
* - 但是注意:null和undefined这两个值没有toString()方法,
* 如果调用他们的方法,会报错
*
* 方式二:
* - 调用String()函数,并将被转换的数据作为参数床底给函数
* - 使用String()函数做强制转换时,
* 对于Number和Boolean实际上就是调用的toString()方法
* 但是对于null和undefined,就不会调用toString()方法
* 它会将null 直接转换为“null”
* 将underfined 直接转换为“undefined”
*/
// var a = 123;
var a = "123";
//调用a 的toString()方法
//调用xxx的yyy()方法,就是xxx.yyy()
// var b = a.toString();
a = a.toString();
a = true;
a = a.toString();
a = null;
a = a.toString(); //报错
a = undefined;
a = a.toString(); //报错
a = 123;
//调用String()函数,来将a转换为字符串
a = String(a);
a = null;
a = String(a);
a = undefined;
a = String(a);
console.log(typeof a);
console.log(a);
</script>
</head>
<body>
</body>
</html>
八、空值和未定义
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script type="text/javascript">
/*
*Null类型的值只有一个,就是null
* null这个值专门用来表示一个为空的对象
*使用typeof检查一个null值时,会返回一个object
*
* Undefined类型的值只有一个,他的值就是Undefined
* 当声明一个变量,但是并不给变量赋值时,它的值就是Undefined
* 使用typeof检查一个undefined时也会返回undefined
*/
var a = null;
// console.log(typeof a);
var b = undefined;
console.log(typeof b);
</script>
</head>
<body>
</body>
</html>
九、布尔值
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script type="text/javascript">
/*
*
*Boolean 布尔值
* 布尔值只有两个
* true
* -表示真
* false
* -表示假
* 使用typeof检查一个布尔值时,会返回boolean
*/
var bool = false;
var bool = true;
console.log(typeof bool);
</script>
</head>
<body>
</body>
</html>
十、Number
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script type="text/javascript">
/*
*在JS中所有的数值都是Number类型,
* 包括整数和浮点数(小数)
* JS中可以表示的数字的最大值
* Number.MAX_VALUE
* 1.7976931348623157e+308
* 如果使用Number表示的数字超过了最大值,则会返回一个
* Infinity
* 表示正无穷
* 使用typeof检查Infinity也会返回Number
* NaN 是一个特殊的数字,表示Not A Number
*
*
*/
//数字123
var a = 123;
//字符串
var b = "123";
/*
可以使用一个运算符typeof
来检查一个变量的类型
语法:typeof 变量
检查字符串时,会返回string
检查数值时,会返回number
*/
a = Number.MAX_VALUE * Number.MAX_VALUE;
// a = "Infinity";
a = "abc" * "bcd";
a = NaN;
a = Number.MIN_VALUE;
// console.log(a);
/*
*在JS中整数的运算基本可以保证精确
*
*/
var c = 1865789 + 7654321;
/*
*如果使用JS进行浮点元素,可以得到一个不精确的结果
* 所以千万不要使用JS进行对精确度要求比较高的运行
*/
var c = 0.1 + 0.2
// var c = 123 + 456
console.log(c);
console.log(typeof a);
console.log(Number.MAX_VALUE * Number.MAX_VALUE);
console.log(typeof b)
console.log(a);
console.log(b);
a = 456.789;
</script>
</head>
<body>
</body>
</html>