51、说明用 JavaScript实现一个提取电话号码的方法。

代码如下

  1. var str="12345678901 021-12345678 你好世界 0418-1234567 13112345678"
  2. var reg=/(1\d{0})|(0\d{2,3}\-\d{7,8})/g
  3. alertstr.matchreg);

测试“12345678901 021-12345678 你好世界 0418-1234567 13112345678”,得到的结果应该是:[12345678901,021-12345678,0418-1234567,13112345678]

52、JavaScript中常用的逻辑运算符有哪些?

“and”(&&)运算符、“or”(‖)运算符和”not”(!)运算符,它们可以在 JavaScript中使用。

53、什么是事件代理(事件委托)?

事件代理( Event Delegation),又称为事件委托,是 JavaScript中绑定事件的常用技巧。顾名思义,“事件代理”就是把原本需要绑定的事件委托给父元素,让父元素负責事件监听。事件代理的原理是DOM元素的事件冒泡。使用事件代理的好处是可以提高性能。

54、什么是 JavaScript?

JavaScript是客户端和服务器端的脚本语言,可以插入HTML页面中,并且是目前较热门的Web开发语言,同时, JavaScript也是面向对象的编程语言。

55、列举Java和 JavaScript的不同之处。

Java是一门十分完整、成熟的编程语言。相比之下, JavaScript是一个可以被引入HTML页面的编程语言。这两种语言并不完全相互依赖,而是针对不同的意图而设计的。Java是一种面向对象编程(OOP)或结构化编程语言,类似的语言有C++;而 JavaScript是客户端脚本语言,它称为非结构化编程。

56、JavaScript和ASP脚本相比,哪个更快?

JavaScript更快。JavaScript是一种客户端语言,因此它不需要Web服务器的协助就可以执行;ASP是服务器端语言,因此它总是比 JavaScript慢,值得注意的是, JavaScript现在也可用于服务器端语言( Node. js)

57、什么是负无穷大?

Infinity代表了超出 JavaScript处理范围的数值。也就是说, JavaScript无法处理的数值都是 Infinity.实践证明, JavaScript所能处理的最大值( Number. MAX VALUE)是17976931348623157e+308,超过该数则为正无穷大;而最小值( Number. MIN VALUE)
是5e-324,小于该数则为0.所以负无穷大代表的是小于- Number MAX VALUE的数字, JavaScript中对应静态变量 Number NEGATIVE INFINITY

58、如何将 JavaScript代码分解成几行?

M:在字符串语句中可以通过在第一行末尾使用反斜杠“\”来完成,例如, document. write(”This is \a program”)。
如果不是在字符串语句中更改为新行,那么 JavaScript会忽略行中的断点下面的代码是完美的,但并不建议这样做,因为阻碍了调试。

  1. var x=l, y=2
  2. z=
  3. X+y;

59、什么是未声明和未定义的变量?

未声明的变量是程序中不存在且未声明的变量。如果程序尝试读取未声明变量的值,则会在运行时遇到错误。未定义的变量是在程序中声明但尚未给出任何值的变量如果程序尝试读取未定义变量的值,则返回未定义的值60.:如何编写可动态添加新元素的代码?
下面给出一段示例代码

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <tit1e>22</tit1e>
  6. </head>
  7. <body>
  8. <p id="ickt">ickt</p>
  9. <script type="text/javascript">
  10. function addNode (){
  11. var p= document. createElement'p');
  12. var textNode document, createTextNode'22'
  13. p .appendchildtextNode);
  14. document. getElementById'ickt' .appendChildp
  15. }
  16. addNode ()
  17. </script>
  18. </body>
  19. </html>

61、什么是全局变量?这些变量如何声明?使用全局变量有哪些问题?

全局变量是整个代码中都可用的变量,也就是说,这些变量没有任何作用域var关键字用于声明局部变量,如果省略var关键字,则声明一个全局变量使用全局变量面临的问题是局部变量和全局变量名称的冲突。此外,很难调试和测试依赖于全局变量的代码。

62、解释 JavaScript中定时器的工作,并说明使用定时器的缺点。

定时器用于在设定的时间执行一段代码,或者在给定的时间间隔内重复该代码这通过使用函数 setTimeout、setInterval和 clearInterva来完成。
setTimeout( function, delay)函数用于启动在所属延迟之后调用特定功能的定时器。
setInterval( function,dlay)函数用于在提到的延迟中重复执行给定的功能,只有在取消时才停止。
clearInterval(id)函数指示定时器停止定时器在一个线程内运行,因此事件可能需要排队等待执行。

63、ViewState和 SessionState有什么区别?

View State特定于会话中的页面; SessionState特定于可在Web应用程序中的所有页面上访问的用户特定数据。

64、什么是===运算符?

===称为严格等式运算符,当两个操作数具有相同的值和类型时,该运算符返回true。

65、说明如何使用 JavaScript提交表单。

要使用 JavaScript提交表单,可以使用以下代码。
document .form [0] .submit();

66、元素的样式/类如何改变?

可以通过以下方式改变元素的样式。

  1. document. getElementById"myText").style. fontsize ="20";

可以通过以下方式改变元素的类。

  1. document. getElementById"myText ").className ="anyclass"

67、JavaScript中的循环结构都有哪些?

for、 while、do.… while、 for in、 for of(ES6新增的)

68、如何在 JavaScript中将base字符串转换为 integer?

parselnt()函数解析一个字符串参数,并返回一个指定基数的整数。 parselnt()将要转换的字符串作为其第一个参数,第二个参数是给定字符串的转换进制基数。
为了将4F(基数16)转换为整数,可以使用代码 parrent(”4F”,16)。

69、说明“==”和“===”的区别。

“==”仅检查值相等性,而“===”用于更严格的等式判定。如果两个变量的值或类型不同,则后者返回 false。

70、3+2+“7”的结果是什么?

由于3和2是整数,它们将直接相加,同时由于“7”是一个字符串,将会被直连接,因此结果将是57。

71、如何检测客户端机器上的操作系统?

为了检测客户端机器上的操作系统,应使用 navigator.app Version字符串(属性)。

72、JavaScript中的null表示什么?

null用于表示无值或无对象。它意味着没有对象或空字符串,没有有效的布尔没有数值和数组对象

73、delete操作符的功能是什么?

delete操作符用于删除对象中的某个属性,但不能删除变量、函数等。

74、JavaScript中有哪些类型的弹出框?

ua; alert、 confirm和 prompt。

75、void(0)的作用是什么?

void操作符使表达式的运算结果返回 undefined。
void(0)用于防止页面刷新,并在调用时传递参数“0”。
void(0)用于调用另一种方法而不刷新页面。

76、如何强制页面加载 JavaScript中的其他页面?

必须插入以下代码才能达到预期效果。

  1. <script language="JavaScript" type="text/javascript">
  2. <!--location.href="http://newhost/newpath/newfile.html";//-->
  3. </script>

77、转义字符是用来做什么的?

当使用特殊字符(如单引号、双引号、撇号和&符号)时,将使用转义字符(反斜杠)。在字符前放置反斜杠,使其显示。
下面给出两个示例。

  1. document. write"I m a "good"boy "
  2. document. write"I m a\"good\"boy"

78、什么是 JavaScript cookie?

cookie是存储在访问者计算机中的变量。每当一台计算机通过浏览器请求某个页面时,就会发送这个 cookie。可以使用 JavaScript来创建和获取 cookie的值。

79、解释 JavaScript中的pop()方法。

pop()方法与shift()方法类似,但不同之处在于shift()方法在数组的开头工作。此外,pop()方法将最后一个元素从给定的数组中取出并返回,然后改变被调用的数组例如:

  1. var colors = ["red""blue""green"];
  2. colors. pop ();
  3. // colors :["red","blue"]

80、在 JavaScript中使用 innerHTML的缺点是什么?

缺点如下:
(1)内容随处可见
(2)不能像“追加到 innerHTML”一样使用。
(3)即使使用+=,如” innerHTML= innerhTML+’htm’”,旧的内容仍然会被HTML替换。
(4)整个 innerHTML内容被重新解析并构建成元素,因此它的速度要慢得多。
(5) innerHTML不提供验证,因此可能会在文档中插入具有破坏性的HTML并将其中断。

81、break和 continue语句的作用是什么?

break语句从当前循环中退出; continue语句继续下一个循环语句。

82、在 JavaScript中, datatypes的两个基本组是什么?

两个基本组是原始类型和引用类型。
原始类型包括数字和布尔类型。引用类型包括更复杂的类型,如字符串和日期。

83、如何创建通用对象?

通用对象可以通过以下代码创建。
var o= new Object ()。

84、typeof是用来做什么的?

typeof是一个运算符,用于返回变量类型的字符串描述。

85、哪些关键字用于处理异常?

  1. try...catch...finally用于处理 JavaScript中的异常。
  2. try{
  3. 执行代码
  4. }catchexp){
  5. 抛出错误提示信息
  6. }
  7. finally
  8. {
  9. 无论try/catch的结果如何都会执行。
  10. }

86、JavaScript中不同类型的错误有几种?

有3种类型的错误。
Load time errors,该错误发生于加载网页时,例如出现语法错误等状况,称为加载时间错误,并且会动态生成错误。
Run time errors,由于在HTML语言中滥用命令而导致的错误。
Logical errors,这是由于在具有不同操作的函数上执行了错误逻辑而发生的错误。

87、在 JavaScript中,push方法的作用是什么?

push方法用于将一个或多个元素添加或附加到数组的末尾。使用这种方法,可通过传递多个参数来附加多个元素。

88、在 JavaScript中, unshift方法的作用是什么?

unshift方法就像在数组开头工作的push方法。该方法用于将一个或多个元素添加到数组的开头。

89、如何为对象添加属性?

为对象添加属性有两种常用语法。
中括号语法,比如obj[“ class”]=12。
点语法,比如 obj. class=12。

90、获得 CheckBox状态的方式是什么?

alert( document getElement Byld(’checkbox1’) .checked;
如果 CheckBox选中,此警告将返回TRUE。

91、解释一下 window. onload和 onDocumentReady。

在载入页面的所有信息之前,不运行 window. onload。这导致在执行任何代码之前会出现延迟。
window.onDocumentReady在加载DOM之后加载代码。这允许代码更早地执行(早于 window. onload)。

92、如何理解 JavaScript中的闭包?

闭包就是能够读取其他函数内部变量的函数。
闭包的用途有两个,一是可以读取函数内部的变量,二是让这些变量的值始终保持在内存中。

93、如何把一个值附加到数组中?

可以在数组末尾处添加成员arr[ arr length]= value;或者调用push方法 arr.push(value)。

94、解释一下for-in循环。

for-in循环用于循环对象的属性。
for-in循环的语法如下。
for (var iable name in object){}
在每次循环中,来自对象的一个属性与变量名相关联,循环继续,直到对象的所有属性都被遍历。

95、描述一下 JavaScript中的匿名函数。

被声明为没有任何命名标识符的函数称为匿名函数。一般来说,匿名函数在声明后无法访问。
匿名函数声明示例如下。

  1. var anon=function(){
  2. alert('I am anonymous' );
  3. anon();

96、和DOM事件流的区别是什么?

区别如下。
(1)执行顺序不一样
(2)参数不一样。
(3)事件名称是否加on不一样。
(4)this指向问题不一样。

97、阐述一下事件冒泡。

Java Script允许DOM元素嵌套在一起。在这种情况下,如果单击子级的处理程序,父级的处理程序也将执行同样的工作。

98、JavaScript里函数参数 arguments是数组吗?

在函数代码中,使用特殊对象 arguments,开发者无须明确指出参数名,使用下标就可以访问相应的参数。
arguments虽然有数组的性质,但其并非真正的数组。它只是一个类数组对象,并没有数组的方法,不能像真正的数组那样调用 .join()、, .concat()、.pop()等方法。

99、什么是构造函数?它与普通函数有什么区别?

构造函数是一种特殊的方法,主要用来创建对象时初始化对象,经常与new运算符一起使用,创建对象的语句中构造函数的名称必须与类名完全相同。
与普通函数相比,区别如下
(1)构造函数只能由new关键字调用
(2)构造函数可以创建实例化对象
(3)构造函数是类的标志。

100、请解释一下 JavaScript和CSS阻塞。

JavaScript的阻塞特性是所有浏览器在下载 JavaScript代码的时候,会阻止其他一切活动,比如其他资源的下载,内容的呈现等,直到 JavaScript代码下载、解析、执行完毕后才开始继续并行下载其他资源并渲染内容。
为了提高用户体验,新一代浏览器都支持并行下载 JavaScript代码,但是 JavaScript代码的下载仍然会阻塞其他资源的下载(例如图片、CSS文件等)。
为了防止 JavaScript修改DOM树,浏览器需要重新构建DOM树,所以就会阻塞其他资源的下载和渲染。
嵌入的 JavaScript代码会阻塞所有内容的呈现,而外部 JavaScript代码只会阻塞其后内容的显示,两种方式都会阻塞其后资源的下载。也就是说,外部脚本不会阻塞外部脚本的加载,但会阻塞外部脚本的执行。
CSS本来是可以并行加载的,但是当CSS后面跟着嵌入的 JavaScript代码的时候,该CSS就会阻塞后面资源的下载。
而当把嵌入的 JavaScript代码放到CSS前面时,就不会出现阻塞的情况了(在IE6下CSS都会阻塞加载)。
根本原因是因为浏览器会维持HTML中CSS和 JavaScript代码的顺序,样式表必须在嵌入的 JavaScript代码执行前先加载、解析完。而嵌入的 JavaScript代码会阻塞后面的资源加载,所以就会出现CSS阻塞资源加载的情况。