资讯专栏INFORMATION COLUMN

复习Javascript专题(一):基本概念部分

LiangJ / 1720人阅读

摘要:一数据类型基本类型引用类型类型判断返回结果未定义布尔值字符串数值对象或者函数拓展堆栈两种数据结构堆队列优先,先进先出由操作系统自动分配释放,存放函数的参数值,局部变量的值等。

一、数据类型
基本类型:`Null Boolean String Undefined Number(NB SUN)`

引用类型:`Array Function Object`

类型判断:typeof 返回结果
    `"undefined"(未定义)    "boolean"(布尔值)             "string"(字符串)
    "number"(数值)            "object"(对象或者null)        "funtion"(函数) `
    

拓展:堆 VS 栈(两种数据结构)

 **堆:**队列优先,先进先出;由操作系统自动分配释放 ,存放函数的参数值,局部变量的值等。
          其操作方式类似于数据结构中的栈。
   
 **栈:**先进后出;动态分配的空间 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收,
         分配方式倒是类似于链表。
      

基本类型:基本数据类型可以直接访问,他们是按照值进行分配的,存放在栈(stack)内存中的简单数据段,数据大小确定,内存空间大小可以分配。

引用类型:即存放在堆(heap)内存中的对象,而js不允许直接访问内存中的位置,因此操作对象时实际上是操作其引用,而不是实际对象。

引申:js中的浅拷贝与深拷贝 ——待补充

二、操作符
主要有一元,位,布尔,加,减,乘,关系,相等,条件,赋值,逗号等操作符。    

++递增/--递减前置和后置区别?

首先要明白,前置是先计算,再赋值;后置是先赋值,再计算。(操作符在前就先计算,在后就后计算)
例如:

function a(){ 
    var a=5; 
    var c=a++; 
    console.log(c);  // 5, a先赋值给c,再自增
};

function b(){ 
    var a=5; 
    var c=a++; 
    console.log(c);  // 6, a先自增,再赋值给c
};
 

数据转换(隐式和显式)

a. 显式:

Boolean(),Number(),parseInt(),parseFloat(),toString()

b. 隐式:

递增、递减(无论是前置还是后置),一元加,减,乘,求余/取模、逻辑非,关系比较,还有if等语句。

这个地方例子还蛮详细的:https://www.haorooms.com/post...

三、语句
if,for,for-in,continue,break等     

break VS continue

break: 退出整个循环; continue: 退出当前一轮循环;for循环里两都皆可用。

引申:js中的循环遍历(包括ES6) ——待补充

四、函数

定义函数的几种方式?

a. 函数声明: function fn(){...}
b. 函数表达式:let fn=function(){...}
c. 构造函数方式:let fn=new Function(参数,...,函数体)

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/99303.html

相关文章

  • 复习Javascript专题(二):闭包,内存,以及垃圾回收机制

    摘要:一个闭包就是当一个函数返回时,一个没有释放资源的栈区所以参数和变量不会被垃圾回收机制回收。使用不当会很容易造成内存泄露。最后,垃圾回收器完成内存清除工作,销毁那些带标记的值并回收它们所占用的内存空间。 1.什么是闭包?闭包有啥特性以及存在什么问题? 概念:闭包是指有权访问另一个函数作用域中的变量的函数。下面的outer就形成了一个闭包: function outer(){ co...

    hankkin 评论0 收藏0
  • 复习Javascript专题(四):js中的深浅拷贝

    摘要:基本数据类型的复制很简单,就是赋值操作,所以深浅拷贝也是针对,这类引用类型数据。它会抛弃对象的。另外,查资料过程中还看到这么一个词结构化克隆算法还有这一篇资料也有参考,也写得比较详细了的深浅拷贝 基本数据类型的复制很简单,就是赋值操作,所以深浅拷贝也是针对Object,Array这类引用类型数据。 浅拷贝对于字符串来说,是值的复制,而对于对象来说则是对对象地址的复制;而深拷贝的话,它不...

    MobService 评论0 收藏0
  • 复习Javascript专题(三):面向对象(对象的创建与继承,原型及原型链)

    摘要:在创建子类实例时,不能向超类型的构造函数中传递参数。构造函数继承子类传进的值是基本思想是在子类构造函数的内部调用超类或父类型构造函数。继承保证构造函数指针指向如果想同时继承多个,还可使用添加属性的方式类继承, OOP:Object Oriented Programming 面向对象编程。 题外话:面向对象的范围实在太大,先把这些大的东西理解理解。 1.什么是对象? 根据高程和权威指南上...

    testHs 评论0 收藏0
  • 复习Javascript专题(五):js中的循环遍历

    摘要:循环这个是最常用,也是最简单的循环了。常用于数组或者类数组的遍历。异步任务定时器,事件,回调函数等。循环它主要用来遍历对象,也可用来遍历数组。遍历对象时是属性名,而遍历数组是字符串格式的下标值。 for循环 这个是最常用,也是最简单的循环了。常用于数组或者类数组的遍历。 for(let i=0;i

    mrli2016 评论0 收藏0
  • JavaScript 到 TypeScript - 声明类型

    摘要:要为变量或者常量指定类型也很简单,就是在变量常量名后面加个冒号,再指定类型即可,比如声明函数是类型,即返回值是类型声明参数是类型声明是无返回值的声明是这段代码演示了对函数类型参数类型和变量类型地声明。变量函数参数和返回值需要申明类型。 从 JavaScript 语法改写为 TypeScript 语法,有两个关键点,一点是类成员变量(Field)需要声明,另一点是要为各种东西(变量、参数...

    Flands 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<