JS学习Day01
JS基础学习
主要以自己学习前端相关知识为目的,积累自己的知识库,巩固自己的知识。
变量的概念以及底层原理
变量是指没有固定的值,可以改变的数;应该把它看作是存储信息的容器:
- 使用变量的优点:方便使用,统一修改;
2.JS中的变量是松散类型的,可以用来保存任何类型的数据;
3.JS中使用var来申明变量 ;
var声明变量的底层原理
本质上看,变量代表的是一段可以操作的内存,**也可以把变量当成内存的符号化表示。**当用var声明变量时,解析器根据变量数据类型来分配一定的内存空间。然后程序通过变量名来访问对应的内存。
JS的数据类型(暂时不考虑ES5,ES6)
简单数据类型:string、number、boolean、undefined、null
-
string:字符串,简单点说就是引号引起来的;
-
number:包括整性、浮点型、非数值(NaN)
NaN的两个特点:
1.任何涉及NaN的操作全都返回NaN;
2.NaN与任何值都不相等,包括他自己(不考虑ES5,ES6中个别情况)
3.isNaN()用来判断是否为非数值,返回布尔值 -
Number强制类型转换:注意,这种方式进行类型转换只要字符串中含有非数值,均会返回NaN
-
-
isNaN底层做了哪些事呢?
1.先进行了隐式转换,即使用了Number先进行了隐式转换
2.然后再使用isNaN进行判断 -
其余几个方法:
1.parseInt():解析字符串,返回一个整数,该方法在解析时候的规则是直到碰到不是数值的时候停,然后返回前面的数值
2.parseFloat():解析字符串,返回浮点数,该方法在解析的时候的规则是直到碰到不是数值的时候停,区别是碰到第一个小数点会返回浮点数。
3.Number.toFixed(n):四舍五入保留n位小数 -
boolean:值为布尔值,值为true或者false
-
undefined:表示未定义,值就是undefined
-
null:表示为空,值就是null
复杂数据类型:object
比如数组[]、对象{}、函数function(){}
typeof运算符:用来返回表示数据类型的字符串(6种结果)
- undefined —— 值为未定义
- Boolean ——— 值为布尔值
- string ——— 值为字符串
- number ——值为数值
- object —— 值为对象、数组、null
- function ——— 值为函数
运算符
几个需要注意的细节:
- 取余运算符%:对于负数的取余,结果的正负取决的是运算符前面的那个数值的符号
- 定要搞清楚递增和递减的先后顺序
- ++ 和 –
++ 表示值递增加1
– 表示值递减减1
var i = 0;
++i 表示先递增,后取值
i++ 表示先取值,后递增 - 关系运算符(等于==、全等运算符 ===)
1.等于只比较值是否相等,忽略类型
2.全等于先比较类型,再比较值(引用类型还要比较内存地址),再比较值 - 逻辑运算符:主要注意其短路操作
进制
进制转换常用的方法:toString()、parseInt()
- toString():将十进制转化为其他进制 注意:转成几进制就写几
- parseInt():将其他进制转化为十进制 注意:把X当成几进制进行转换,第二个参数就是多少,默认十进制
- 其他进制相互转换,就要先转换为十进制,然后再转为指定进制