20190528-JavaScriptの打怪升级旅行 { 语句 [ 赋值 ,数据 ] }

写在前面的乱七八糟:今天考了试,emmm很基础的题,还是Mrs房的面试题让人绝望啊┓( ´∀` )┏,补了很多知识,很综合的题,坑也很多,总的来说,查漏补缺,其实是啥都缺~

今天打的小BOSS主要是数据,但也不得不提到赋值,┓( ´∀` )┏

语句:声明  变量  赋值   数据;

3.赋值

在说赋值方式之前,需要先引入js的数值类型:基本类型和引用类型(boss4会细剖),下面我就假装都懂这俩个小怪的区别了,开始我一本正经的吹~,咳,一本正经地打怪升级了

现象:

解析:莫得慌,一步步来,首先是基本类型,当 a 自增1 时,b没有受到影响,这是因为基本类型存放在栈区,按访问,操作的是保存在变量内的实际的

其次,是引用类型,当改变数组 a 时,b没有受到影响?? 难不成又被水了?莫得慌,先跳过看下个框框,调用了数组a的pop()方法,b受到了影响!

这是因为引用类型存放的方式:在栈中存放对象变量标示名称和该对象在堆中的存放地址,在中存放数据

一脸大雾,出现上面现象是因为:a = [1,2] //改变的是a引用本身,而非其数组对象,a 和 b 是毛线关系都么有的,而a.pop( );//在 b 指向数组对象后,调用pop( ) 方法改变了原有的数组对象,所以第一次操作 b 么有影响,而第二次却有,操作的是该对象在堆中的存放地址。

3.1传值赋值

var a = 基本类型

3.2引用赋值

var a = 引用类型

若仍旧一脸大雾,看图看图 =>

上图可见,基本类型,操作具体的值,b 同样是被赋值了10,而引用类型,操作对象的地址,当改变对象[1,2]的时候,b 也会随之而改变 ,但若只改变 a 自身,对 b 是免疫的,因为 b 引用的是 a 的地址而不是a 本身呐~

综上,第一章BOSS:语句 の 第三层boss:赋值,完结撒盐┓( ´∀` )┏

4.数据

4.1数据类型

4.1.1原始类型(primitive type)

4.1.1.1布尔值(boolean)

 

  • true(真)
  • false(假)

 

4.1.1.2数字(number)

 

  • 所有数字都以64位浮点数形式储存
  • 整数
  • 浮点数/小数

 

4.1.1.3字符串(string)

 

  • " "/ ' '
  • 单双引号可以相互嵌套  'key = "value"'     "It's a 'long' journey"
  • 单嵌套单,双嵌套双,需要转义。'Did she say \'Hello\'?'
  • 字符串可被视为字符数组,可使用数组的方括号运算符,用来返回某个位置的字符(位置编号从0开始)
  • 方括号中的数字超过字符串的长度,或者方括号中根本不是数字,则返回undefined。'abc'[3] // undefined
  • length属性返回字符串的长度
  • Unicode 字符集

 

4.1.1.4未定义undefined & 空null

 

  • 同:undefined == null // true
  • 异:null转为数字时,自动变成0;undefined是一个表示"此处无定义"的原始值,转为数值时为NaN;
  • Number(null) // 0 5 + null // 5 ;Number(undefined) // NaN 5 + undefined // NaN;

4.1.1.5类型symbol

4.1.2引用类型/类(class)

4.1.2.1狭义的对象(object)

一组“键值对”(key-value)的集合

 

 

4.1.2.2数组(array)

 

  • 定义:按次序排列的一组值。每个值的位置都有编号(从0开始),整个数组用方括号表示
  • 任何类型的数据,都可以放入数组=>数组的元素还是数组,就形成了多维数组
  • 本质:属于一种特殊的对象
  • 属性:length 属性:返回数组的成员数量
  • 运算符:in 运算符:检查某个键名是否存在

 

4.1.2.3函数(function)=>第一等公民

 

  • 函数名的提升

 

4.1.3类型判断

4.1.3.1typeof 运算符

 

  • typeof 123 // "number"
  • typeof '123' // "string"
  • typeof false // "boolean"
  • typeof undefined // "undefined"
  • typeof null // "object"
  • typeof window // "object"
  • typeof {} // "object"
  • typeof [] // "object"
  • function f() {} typeof f // "function"
  • typeof v // "undefined"

 

4.1.3.2instanceof 运算符

4.1.4类型转换

4.1.4.1隐式转换

 

  • 数字 + 字符串:数字会被转成字符串 10 + 'kb' //'10kb'
  • 数字 + 布尔值:布尔值会被转换数字 true->1/false->0 1 + true //2
  • 布尔值 + 布尔值:布尔值会被转成数字 true->1/false->0 true + false //1
  • 布尔值 + 字符串:布尔值会被转成字符串 true + 'abc' //'trueabc'

 

4.1.4.2强制转换

 

  • 强制转换成整型parseInt('23.55t'); // 23
  • 强制转换成浮点型parseFloat('23.55t'); //23.55
  • 转换成字符20.toString() // '20'

 

4.2数据表现形式

4.2.1值

4.2.1.1原始值

4.2.1.1.1布尔值(boolean)

4.2.1.1.2数字(number)

4.2.1.1.3字符串(string)

4.2.1.1.4未定义undefined

4.2.1.1.5null

4.2.1.2引用值

4.2.1.2.1普通对象/标准对象{ }

4.2.1.2.2数组对象[ ]

4.2.1.2.3函数对象funtion( ){ }

 

  • 定义
  • 作用
  • 调用
  • 形参 & 实参
  • 封装函数

 

4.2.1.2.4正则对象/ /

4.2.2表达式(Expression)

表达式:运算元+运算符=运算结果

4.2.2.1运算符

  • 对象运算符

4.2.2.2运算顺序 => 优先级

  • 优先级高的运算符先执行,优先级低的运算符后执行
  • 圆括号:优先级是最高的,即圆括号中的表达式会第一个运算
  • 不是运算符,而是一种语法结构
  • 一种是把表达式放在圆括号之中,提升运算的优先级
  • 另一种是跟在函数的后面,作用是调用函数
  • 不具有求值作用,只改变运算的优先级

综上,第一章BOSS:语句 の 第四层boss:数据,完结撒盐┓( ´∀` )┏,因为数据里面还有几个大boss没清理,像数组/字符串/正则等的属性及API使用,需另开一章~

小结:附上第一章:语句的大纲笔记

posted @ 2019-05-28 23:38  傅玖  阅读(185)  评论(0编辑  收藏  举报