js基础知识

Number数字类型

  包含 :常规数字,NaN

 

NaN

   not a number :不是一个数,但是它属于数字类型

 

isNaN

   检测一个值是否为非有效数字,如果不是有效数字则返回 TRUE ,反之是有效数字返回FALSE

   在使用isNaN 进行检测的时候,首先会验证检测的值是否为数字类型,如果不是,先基于 Number() 这个方法,

        把值转换为数字类型,然后在检测。

使用Number() 方法转换数字的规则如下:

  1 如果是Boolean 值 ,true 转换为  1 ,false 转换为 0

  2 如果是数字,只是简单的传人和 返回。

  3 如果是 Null 值,转化为 0.

  4 如果是 undefined  转换为 NaN

  5 如果是字符串,遵循以下规则:

         1 如果字符串中只包含数字,则将其装换为十进制数值。

         2 如果字符串中包含有效的浮点格式,则将其转换为对应的浮点数值.

         3 如果字符串中包含有效的十六进制格式,例如“0xf”z则将其转换为相同大小的十进制整数值

         4 如果字符串是空的。则将其转化为 0

         5 如果字符串中包含除上述格式之外的字符,则将其装换为NaN

      6 如果是对象,则调用对象的 valueof() 方法,然后依照前面的规则转换返回的值,如果装换的

    结果是NaN,则调用对象的toString()方法,然后再次依照前面的规则转换返回的字符串值。

   

string 字符串类型

   所有用单引号,双引号,反引号,(撇 ES6模版字符串)包起来的都是字符串

 

把其他类型转为字符串类型

  如果装换的值有 toString()方法,则调用 方法,并返回响应的结果

  如果值是 null  则返回 “null”

  如果值是 undefined 则返回 “undefined”

 

boolean 布尔数据类型

      只有两个值。true / false;

把其他类型的值转换为 布尔类型

    只有。0 NaN ‘’ null  undefined 这五个值,转换为 False ,其余都转换为 true (而且没有任何的特殊情况)

 

null  /  undefined

 null 和 undefined 都代表的是没有

 

 

  null  :意料之中的(一般都是开始 不知道值,我们首先手动设置为null 后期在给予赋值操作)

 undefined : 意料之外,

 

object 对象数据类型--普通对象

  任何一个对象都是由零到多组键值对(属性名:属性值)组成的。(并且属性名不能重复)

 

  数组是特殊的对象数据类型

 

 

浏览器 想要执行 js 代码。需要准备的环境:

  1 从电脑内存中分配出一一个内存,用来执行代码 这块内存称为 栈内存(stack)

  2 分配一个主线程用来自上而下的执行js 代码

 

  

      js创建简单基本类型变量的过程。

     1 创建一个变量 a ,将 a 放到 当前栈内存变量存储区域中

     2 创建一个值  12将这个值存储在当前内存值区域中(这是简单的基本类型是这样存储的)

       3  = 号为赋值,其实赋值是让变量和值相互关联的过程

 

  js 创建引用类型变量的过程

     1 在内存中分配出一块新内存,用来存储引用类型值(堆内存==> heap )==>内村有一个16进制的地址。

     2 把对象中的键值对(属性名:属性值)依次存储到堆内存中,

     3 把堆内存地址和变量关联起来。

 

基本数据类型与引用数据类型的区别

  基本类型:按值操作,所以也叫值类型。

  引用类型:操作的是堆内存的地址,按引用的地址操作的。

 

练习题 :

  let n = [10,20]

  let m = n;

  let x = m;

  m[0] = 100;

     x = [30,40]

     x[0] = 200;

  m = x;

    m[1] = 300;

  m[2] = 400;

 

  console.log(n,m,x);

 结果为:n= [100,20,400]

    m=[200,300]

    x=[200,300]

 

 

  

 

posted @ 2019-07-16 20:17  行走的翅膀  阅读(149)  评论(0编辑  收藏  举报