鉴于本人正在学习前端知识中,以下内容可能会有一定错误,如果能指出错误之处感激不尽,希望能与大家共同进步
JavaScript中数据可以按照数据类型分为数值型、字符型、布尔型、数组、对象等等类型,还可以根据数据复杂程度分为基本数据类型与复杂数据类型。
(目前我所学到的JS知识并无常量的概念,但ES6新引入了const来定义常量,通过const定义的常量值不能被更改,目前只做了解)
定义一个变量:var 变量名 = 值;
需要注意的是:
1、在JavaScript中变量只是存储这些数据的容器,
2、一个变量只能存储一个值,后来值会替换原值
3、变量命名时只能使用数字、字母、_、$,且不能以数字开头
4、变量命名时不能使用保留字与关键字
5、变量名区分字母大小写
6、建议使用语义化单词命名变量
7、建议遵守小驼峰命名规则
数值型数据就是数字与NaN,NaN为特殊的数值型数据,其含义为非数字
凡是被引号包裹的数据都是字符串型数据
boolean型数据只有两个值,true(真)与false(假)
特殊数据类型,只有一个值null表示空
特殊数据类型,由null衍生而来,只有一个值undefined表示未定义
想要知道当前变量内所存储的数据类型可以用typeof()函数进行判断,对于带有数字的数据有一个特别的函数 isNaN():
该函数输出true表示该数据不是纯数字,输出false表示该数据是一个纯数字,该函数一般用来判断字符串数据是否能转换成数字
注意:布尔值数据输出的都是false,null型数据输出也为false
<script>
var a = 123 //Number型数据
var b = "12s3"; //String型数据
var c = "123"; //String型数据
var d = true; //Boolean型数据
var e = false; //Boolean型数据
var f = null; //Null型数据
var g = undefined; //Undefined型数据
console.log(typeof(a)); //number
console.log(typeof(b)); //string
console.log(typeof(c)); //string
console.log(typeof(d)); //boolean
console.log(typeof(e)); //boolean
//关于null有一个有趣的小bug如果使用typeof判断其数据类型返回的值为object,这是一个历史遗留问题有兴趣的可以自行百度了解
console.log(Object.prototype.toString.call(f)); //[object Null]
console.log(typeof(g)); //undefind
console.log(isNaN(a)); //false
console.log(isNaN(b)); //true
console.log(isNaN(c)); //false
console.log(isNaN(d)); //false
console.log(isNaN(e)); //false
console.log(isNaN(f)); //false
console.log(isNaN(g)); //true
</script>
<script>
var a = 123 //Number型数据
var b = "12s3"; //String型数据
var c = "123"; //String型数据
var d = true; //Boolean型数据
var e = false; //Boolean型数据
var f = null; //Null型数据
var g = undefined; //Undefined型数据
b = Number(b) //NaN
c = Number(c) //123
d = Number(d) //1
e = Number(e) //0
f = Number(f) //0
g = Number(g) //NaN
console.log(b); //NaN
console.log(c); //123
console.log(d); //1
console.log(e); //0
console.log(f); //0
console.log(g); //NaN
</string>
var a = 123.45 //Number型数据
var b = "98s7"; //String型数据
var c = "654"; //String型数据
var d = true; //Boolean型数据
var e = false; //Boolean型数据
var f = null; //Null型数据
var g = undefined; //Undefined型数据
var h = "32.1.2" //String型数据
a = parseInt(a) //123
b = parseInt(b) //98
c = parseInt(c) //654
d = parseInt(d) //NaN
e = parseInt(e) //NaN
f = parseInt(f) //NaN
g = parseInt(g) //NaN
h = parseInt(h) //32
console.log(a); //123
console.log(b); //98
console.log(c); //654
console.log(d); //NaN
console.log(e); //NaN
console.log(f); //NaN
console.log(g); //NaN
console.log(h); //32
var a = 123.45 //Number型数据
var b = "98s7"; //String型数据
var c = "654"; //String型数据
var d = true; //Boolean型数据
var e = false; //Boolean型数据
var f = null; //Null型数据
var g = undefined; //Undefined型数据
var h = "32.1.2" //String型数据
a = parseFloat(a) //123.45
b = parseFloat(b) //98
c = parseFloat(c) //654
d = parseFloat(d) //NaN
e = parseFloat(e) //NaN
f = parseFloat(f) //NaN
g = parseFloat(g) //NaN
h = parseFloat(h) //32.1
console.log(a); //123.45
console.log(b); //98
console.log(c); //654
console.log(d); //NaN
console.log(e); //NaN
console.log(f); //NaN
console.log(g); //NaN
console.log(h); //32.1
Boolean()输出结果一定为布尔值,需要注意:
1)Boolean(”“) 输出false
2)Boolean(0) 输出false
3)Boolean(null) 输出false
4)Boolean(undefined) 输出false
5)Boolean(NaN) 输出false
在JavaScript中运算符也分为数学运算符、赋值运算符、逻辑运算符、比较运算符这几类
最基本的运算符,数学上的加减乘除
+:加法运算符,只有两边都为数字时才能进行加法计算,若有字符串则进行的是字符串拼接
-:减法运算符
*:乘法运算符
/:除法运算符
%:取余符
PS.
Javascript的小数计算较弱,极其容易出现误差,本人目前还未学到其他的解决方法
=:将等号右边的值赋值给左边的变量
+=:将自身的值加上等号右边的值再赋值给自身;即a += b 等价于 a = a + b
-=:将自身的值减去等号右边的值再赋值给自身;即a -= b 等价于 a = a - b
*=:将自身的值乘以等号右边的值再赋值给自身;即a *= b 等价于 a = a * b
/=:将自身的值除以等号右边的值再赋值给自身;即a /= b 等价于 a = a / b
%=:将自身的值对等号右边的值取余再赋值给自身;即a %= b 等价于 a = a % b
= =:等于,数值相等为true,否则为false
= = =:全等于,数值与数据类型相等为true,否则为false
!=:不等于,数值不同为true,否则为false
!= =:全不等,数值与数据类型都不同为true,否则为false
>:大于,左边值大于右边值为true,否则为false
>=:大于等于,左边值大于或等于右边值为true,否则为false
<:小于,左边值小于右边值为true,否则为false
<=:小于等于,左边值小于或等于右边值为true,否则为false
逻辑运算符是对逻辑进行判断的运算符,一共包括或、与、非三种运算符
&&:与逻辑运算符,其一为假结果为假
||:或逻辑运算符,其一为真结果为真
!:非逻辑运算符,原先为真结果为假,原先为假结果为真
PS.
在JavaScript中若有 a&&b == false
若a为false,输出a;若a为true,b为false,输出b
++:自增符,有两种运算模式
1)++变量名;变量先在原值上加一,然后参与运算
2)变量名++:变量先用原值参与运算后,再在原值上加一
–:自增符,有两种运算模式
1)- -变量名;变量先在原值上减一,然后参与运算
2)变量名- -:变量先用原值参与运算后,再在原值上减一
最高级:()
一级:++,- -,!一元运算符与非逻辑符
二级:*,%,+,- 算术运算符,先乘除后加减
三级:>,>=,<,<= 关系运算符
四级:= =,!=,===,!= = 相等符
五级:&&,||逻辑运算符,先与后或
六级:=,+=,…… 赋值符