1.什么是Java Script?
是基于对象的事件驱动的弱类型语言。是脚本语言
专门编写交互程序的语言,运行于js解释器/引擎中 ,解释执行——逐行读取,先读到先执行,后读到后执行。
js是弱类型编程语言:3方面:
1. 声明变量时,不用规定变量存储的数据类型
2. 赋值时,动态决定变量的数据类型
同一个变量,先后可保存不同类型的数据
3. 运算时,js会根据需要,动态转换数据的类型
1. 声明变量时,不用规定变量存储的数据类型
2. 赋值时,动态决定变量的数据类型
同一个变量,先后可保存不同类型的数据
3. 运算时,js会根据需要,动态转换数据的类型
2.什么是变量?
内存中存储1个数据的存储空间,再起个名字。
3.什么是常量?
一旦声明并初始化后,值不可改变的量!
4.什么是数据类型?
内存中存储不同数据的存储格式。
js中数据类型:2大类
1. 原始类型:值保存在变量本地的数据类型
5种:Number 专门保存数字的类型
String 专门保存字符串的类型
Boolean 专门保存真/假二选一的类型
undefined 只有一个值undefined
null 表示不指向任何地址
2. 引用类型:值不保存在变量本地的数据类型
1. 原始类型:值保存在变量本地的数据类型
5种:Number 专门保存数字的类型
String 专门保存字符串的类型
Boolean 专门保存真/假二选一的类型
undefined 只有一个值undefined
null 表示不指向任何地址
2. 引用类型:值不保存在变量本地的数据类型
5.什么是舍入误差?
因为计算机中无法精确表示1/10,导致计算中产生的误差。不可避免!
6.什么是隐式转换?
无需程序员干预,js自动完成的类型转换
7.什么是强制转换?
程序员通过主动调用专门函数,执行转换
8.什么是表达式?
表达式:由数据,变量和运算符组成的一个公式
每个表达式默认都从左向右,两两计算
每个表达式有且仅有一个运算结果!
每个表达式默认都从左向右,两两计算
每个表达式有且仅有一个运算结果!
9.什么是运算符?
程序中模拟人的思维运算或判断的符号
10.什么是程序?
让计算机按照人的想法去执行任务
11.什么是关系运算?
将两个值做比较:> < >= <= == !=
只能返回两个值之一:如果成立,返回true;否则返回false
隐式转换:将所有类型都转为number类型,再比较!
只能返回两个值之一:如果成立,返回true;否则返回false
隐式转换:将所有类型都转为number类型,再比较!
12.什么是逻辑运算?
综合多个关系运算的结果得出最终结论
隐式类型转换:自动将每个条件转为Boolean类型
隐式类型转换:自动将每个条件转为Boolean类型
13.什么是短路逻辑?
如果前一个条件已经可以得出结论, 则后续条件不再执行!
14.什么是三目运算?
根据不同的条件,多选*一*,返回不同的结果。无论三目运算多么复杂,结果只能是一个值。
15.什么是函数?
封装一个专门任务的步骤清单的代码段, 起一个任务名
16.什么是变量作用域?
一个变量的可用范围
Js中2种作用域:
1. 全局作用域:一个变量可以在程序的任何位置被访问。
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. 外层函数返回内层函数的对象
并且外层函数被调用,结果被保存在全局变量中
1. 定义外层函数,封装被保护的局部变量
2. 定义内层函数,执行对外层函数局部变量的操作
3. 外层函数返回内层函数的对象
并且外层函数被调用,结果被保存在全局变量中
43.什么是面向对象?
面向对象三大特点:封装 继承 多态
封装:将描述同一个东西的属性和方法,定义在一个对象中
继承:父对象中的属性和方法,子对象可直接使用
多态:同一个对象,在不同情况下,呈现不同的状态
重载:同一方法名,传入参数不同,执行不同的操作
重写:子对象觉得父对象的成员不好用,可自己定义一个,覆盖父对象的成员
封装:将描述同一个东西的属性和方法,定义在一个对象中
继承:父对象中的属性和方法,子对象可直接使用
多态:同一个对象,在不同情况下,呈现不同的状态
重载:同一方法名,传入参数不同,执行不同的操作
重写:子对象觉得父对象的成员不好用,可自己定义一个,覆盖父对象的成员
44.什么是构造函数?
描述一类对象结构的特殊函数“对象”是一个实物的抽象,通常需要一个模板,表示某一类实物的共同特征,然后“对象”根据这个模板生成。典型的面向对象语言(如C++和JAVA)有一个“类”的概念,这个“类”就是对象的模板。但是javascript不是基于类的,而是基于“构造函数Constructor”和“原型链Prototype"
构造函数的写法跟普通函数的写法一样,但是它的函数名首字母要大写。
构造函数的特点有两个:1、函数体内部使用了this关键字,代表所要生成的对象实例;2、生成对象的时候必需用new