JS学习Day01

@JS基础DAY01

JS基础学习

主要以自己学习前端相关知识为目的,积累自己的知识库,巩固自己的知识。

变量的概念以及底层原理

变量是指没有固定的值,可以改变的数;应该把它看作是存储信息的容器:

  1. 使用变量的优点:方便使用,统一修改;
    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

  • JS学习Day01

  • isNaN底层做了哪些事呢?
    1.先进行了隐式转换,即使用了Number先进行了隐式转换
    2.然后再使用isNaN进行判断
    JS学习Day01

  • 其余几个方法:
    1.parseInt():解析字符串,返回一个整数,该方法在解析时候的规则是直到碰到不是数值的时候停,然后返回前面的数值
    JS学习Day01
    2.parseFloat():解析字符串,返回浮点数,该方法在解析的时候的规则是直到碰到不是数值的时候停,区别是碰到第一个小数点会返回浮点数。
    JS学习Day01
    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++ 表示先取值,后递增
    JS学习Day01
  • 关系运算符(等于==、全等运算符 ===)
    1.等于只比较值是否相等,忽略类型
    2.全等于先比较类型,再比较值(引用类型还要比较内存地址),再比较值
    JS学习Day01
  • 逻辑运算符:主要注意其短路操作
    JS学习Day01

进制

进制转换常用的方法:toString()、parseInt()

  • toString():将十进制转化为其他进制 注意:转成几进制就写几
    JS学习Day01
  • parseInt():将其他进制转化为十进制 注意:把X当成几进制进行转换,第二个参数就是多少,默认十进制
    JS学习Day01
  • 其他进制相互转换,就要先转换为十进制,然后再转为指定进制