关于JavaScript的一些基础知识

1.什么是Java Script?

是基于对象的事件驱动的弱类型语言。是脚本语言
专门编写交互程序的语言,运行于js解释器/引擎中 ,解释执行——逐行读取,先读到先执行,后读到后执行。
js是弱类型编程语言:3方面:
        1. 声明变量时,不用规定变量存储的数据类型
        2. 赋值时,动态决定变量的数据类型
           同一个变量,先后可保存不同类型的数据
        3. 运算时,js会根据需要,动态转换数据的类型

2.什么是变量?

内存中存储1个数据的存储空间,再起个名字。

3.什么是常量?

一旦声明并初始化后,值不可改变的量!

4.什么是数据类型?

内存中存储不同数据的存储格式。

js中数据类型:2大类
    1. 原始类型:值保存在变量本地的数据类型
5种:Number 专门保存数字的类型 
             String 专门保存字符串的类型
             Boolean 专门保存真/假二选一的类型
             undefined 只有一个值undefined
             null 表示不指向任何地址
    2. 引用类型:值不保存在变量本地的数据类型

5.什么是舍入误差?

因为计算机中无法精确表示1/10,导致计算中产生的误差。不可避免!

6.什么是隐式转换?

无需程序员干预,js自动完成的类型转换

7.什么是强制转换?

程序员通过主动调用专门函数,执行转换

8.什么是表达式?

表达式:由数据,变量和运算符组成的一个公式
            每个表达式默认都从左向右,两两计算
            每个表达式有且仅有一个运算结果!

9.什么是运算符?

程序中模拟人的思维运算或判断的符号

10.什么是程序?

让计算机按照人的想法去执行任务

11.什么是关系运算?

将两个值做比较:> < >= <= == !=
   只能返回两个值之一:如果成立,返回true;否则返回false
     隐式转换:将所有类型都转为number类型,再比较!

12.什么是逻辑运算?

综合多个关系运算的结果得出最终结论
     隐式类型转换:自动将每个条件转为Boolean类型

13.什么是短路逻辑?

如果前一个条件已经可以得出结论, 则后续条件不再执行!

14.什么是三目运算?

根据不同的条件,多选*一*,返回不同的结果。无论三目运算多么复杂,结果只能是一个值。

15.什么是函数?

封装一个专门任务的步骤清单的代码段, 起一个任务名

16.什么是变量作用域?

一个变量的可用范围
Js中2种作用域:
     1. 全局作用域:一个变量可以在程序的任何位置被访问。
     2. 函数作用域:一个变量仅能在函数调用时,内部被访问

17.什么是按值传递?

js中无论变量间赋值或使用变量传递参数时, 都是将变量中的值,复制一个副本给对方

18.什么是全局函数?

什么是:*ES标准中*已经定义好的,开发者可直接调用的函数

19.什么是编码?

将url中的非法字符,改为合法字符表示

20.什么是解码?

将url中的非法字符编码后的内容,恢复成原文

21.什么是分支结构?

程序结构3大类:
      顺序:程序默认都是从上向下逐行执行
      分支:根据条件判断的结果,有选择的执行不同代码段
      循环:程序可以反复执行同一代码段,到达临界时退出

22.什么是数组?

一组连续的变量组成的集合——统一起一个名字,批量管理多个数据

23.什么是垃圾回收器?

专门释放对象内存的一个程序,在底层,后台,伴随当前程序同时运行,引擎会定时自动调用垃圾回收期,总有一个对象不再被任何变量引用时,才释放

24.什么是数组的遍历?

从下标0位置开始,依次取出每个元素,反复执行相同的操作。

25.什么是关联数组(hash数组)?

可以自己定义下标名称的数组

26.什么是API?

应用程序编程接口,已经实现的,现成的对象和方法。——提高开发效率

27.什么是栈?

只能从一端进出的数组,另一端封闭  FILO

28.什么是队列?

只允许从末尾进入数组,必须从开头出数组   FIFO

29.什么是二维数组?

数组中的元素,又引用了另一个子数组对象

30.什么是字符串?

多个字符组成的一个*只读*的集合(数组)

31.什么是包装类型?

临时封装原始类型数据,提供对原始类型数据的操作方法
3种:String Number     Boolean(不能new)

32.什么是正则表达式?

专门规定字符串中字符*格式规则*的表达式

33.什么是备选字符集?

规定某*一位*字符可选的备选文字列表

34.什么是预定义字符集?

专门表示常用的连续的字符集

35.什么是正则表达式中的量词?

规定一个字符集出现的次数

36.什么是正则表达式中的贪婪模式?

默认总是匹配最长的符合条件的字符串

37.什么是正则表达式中的懒惰模式?

仅匹配最短的符合条件的字符串

38.什么是错误?

导致程序无法继续执行的异常状态

39.什么是错误处理?

在程序发生错误时,保证程序不退出或正常退出

40.什么是重载,JS里可以实现重载么?

程序中可定义多个相同函数名,不同参数列表的函数调用者不必区分每个函数的参数,执行时,程序根据传入的参数个数,自动判断选择哪个函数执行。
js语法不支持重载!但可用arguments对象模拟重载效果

41.什么是匿名函数?

定义时,不指定函数名的函数

42.什么是闭包?

闭包三特点:
     1. 定义外层函数,封装被保护的局部变量
     2. 定义内层函数,执行对外层函数局部变量的操作
     3. 外层函数返回内层函数的对象
        并且外层函数被调用,结果被保存在全局变量中

43.什么是面向对象?

面向对象三大特点:封装  继承  多态
     封装:将描述同一个东西的属性和方法,定义在一个对象中
     继承:父对象中的属性和方法,子对象可直接使用
     多态:同一个对象,在不同情况下,呈现不同的状态
          重载:同一方法名,传入参数不同,执行不同的操作
          重写:子对象觉得父对象的成员不好用,可自己定义一个,覆盖父对象的成员

44.什么是构造函数?

描述一类对象结构的特殊函数

“对象”是一个实物的抽象,通常需要一个模板,表示某一类实物的共同特征,然后“对象”根据这个模板生成。典型的面向对象语言(如C++和JAVA)有一个“类”的概念,这个“类”就是对象的模板。但是javascript不是基于类的,而是基于“构造函数Constructor”和“原型链Prototype"

构造函数的写法跟普通函数的写法一样,但是它的函数名首字母要大写。

构造函数的特点有两个:1、函数体内部使用了this关键字,代表所要生成的对象实例;2、生成对象的时候必需用new



猜你喜欢

转载自blog.csdn.net/colt666/article/details/79926053