转自:https://juejin.im/post/5d6c53476fb9a06acc009e00#heading-1 问题1:Java和JavaScript有什么不同
问题2:什么 Javascript JavaScript 是一种轻量级的解释型编程语言,具有面向对象的特性,允许各位在其他静态HTML页面中构建交互性。 该语言的通用核心已嵌入Netscape,Internet Explorer和其他Web浏览器中。 问题3: JS 支持哪些数据类型 [p][p][/p][/p] JS 支持的数据类型:
问题4:JavaScript的特性是什么 [p][p][/p][/p] 以下是JS的特性:
问题5:JavaScript是区分大小写 是的,JS是一种区分大小写的语言。关键字、变量、函数名和任何其他标识符必须始终使用一致的大写字母进行使用。 问题6:JS 的优势是什么 以下使用JS的优点:
问题7:如何用JS创建对象 JS贼支持对象概念,用如下方式创建即可: var emp = { name: "Daniel", age: 23 }; 复制代码 问题8:如何用JS创建数组 JS 创建数组也很简单: var x = []; var y = [1, 2, 3, 4, 5]; 复制代码 问题9:JS 中的命名函数是什么以及如何定义: 命名函数在定义后立即声明名称,可以使用function关键字定义: function named(){ // write code here } 复制代码 问题10:是否可以将匿名函数分配给变量并将其作为参数传递给另一个函数 可以。一个匿名函数可以分配给一个变量,它也可以作为参数传递给另一个函数。 问题11:JS中的参数对象是什么&如何获得传递给函数的参数类型 JS 变量arguments表示传递给函数的参数。 使用typeof运算符,可以获得传递给函数的参数类型。如下: function func(x){ console.log(typeof x, arguments.length); } func(); //==> "undefined", 0 func(7); //==> "number", 7 func("1", "2", "3"); //==> "string", 3 复制代码 问题12:JS中变量的作用域是什么 变量的作用域是程序中定义它的区域,JS变量只有两个作用域:
问题13:JS 中“this”运算符的用途是什么? this关键字引用它所属的对象。 根据使用位置,它具有不同的值。 在方法中,这指的是所有者对象,而在函数中,这指的是全局对象。 问题14:什么是回调 回调函数是作为参数或选项传递给某个方法的普通JS函数。它是一个函数,在另一个函数完成执行后执行,因此称为回调。在JS中,函数是对象,因此,函数可以接受函数作为参数,并且可以由其他函数返回。 问题15:什么是闭包?举个例子 只要在某个内部作用域内访问在当前作用域之外定义的变量,就会创建闭包。 它允许你从内部函数访问外部函数的作用域。 在JS中,每次创建函数时都会创建闭包。 要使用闭包,只需在另一个函数内定义一个函数并暴露它。 问题16:列出一些内置方法及其返回的值。
问题17: JS中的变量命名约定是什么? 在JS中命名变量时要遵循以下规则:
问题18:TypeOf 运算符是如何工作的 typeof运算符用于获取其操作数的数据类型。 操作数可以是文字或数据结构,例如变量,函数或对象。 它是一个一元运算符,放在它的单个操作数之前,可以是任何类型。 它的值是一个字符串,表示操作数的数据类型。 问题19:如何使用 JS 创建 cookie 创建cookie的最简单方法是为document.cookie对象分配一个字符串值,如下所示: document.cookie = "key1 = value1; key2 = value2; expires = date"; 复制代码 问题20:如何使用JS读取cookie 读取cookie就像写入cookie一样简单,因为document.cookie对象的值是cookie。
问题21:如何使用 JS 删除 cookie 如果要删除cookie以便后续尝试读取cookie,则只需将过期日期设置为过去的时间。 咱们应该定义cookie路径以确保删除正确的cookie。 如果未指定路径,某些浏览器将不允许咱们删除cookie。 问题22:Attribute 和Property之间有什么区别
问题23:列出在JS代码中访问HTML元素的不同方式 下面是在JS代码中访问 html 元素的方法列表:
问题24:JS代码在HTML文件中可以以多少种方式使用 主要有三种:
行内方式: ... <input type="button" value="点击有惊喜" onclick="javascript:alert('哈哈哈哈')"> ... 复制代码 内部方式: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <script type="text/javascript"> //声明一个函数(整个文档都可以使用) function surprise() { alert('恭喜你中了一百万')/*弹出框*/ } </script> </head> 。。。 </html> 复制代码 外部方式: ... <!--很多html页面都可以调用js4.js页面--> <script src="../../js/js4.js" type="text/javascript" charset="utf-8"> ... 复制代码 问题25:在JS中定义变量的方法有哪些 在 JS 中声明变量有三种方式:
问题26:什么是类型化语言 类型化语言中,值与值关联,而不是与变量关联,它有两种类型:
问题27:Cookie 与 Local storage 与 Session storage 区别
问题28: ‘==‘ 和 ‘===‘ 区别 ==: 两边值类型不同的时候,要先进行类型转换,再比较。 ===:不做类型转换,类型不同的一定不等。 一言以蔽之:==先转换类型再比较,===先判断类型,如果不是同一类型直接为false。 问题29:null 和 undefined 区别 undefined是基本数据类型 表示未定义 缺少的意思。 null是引用数据类型,是对象,表示空对象 undefined是从null派生出来的 所以undefined==null 为 true 问题 30:undeclared 和 undefined 区别? undeclared的变量是程序中不存在且未声明的变量。 如果程序尝试读取未声明变量的值,则会遇到运行时错误。undefined的变量是在程序中声明但未赋予任何值的变量,如果程序试图读取未定义变量的值,则返回undefined的值。 问题 31: 列出一些JS框架 [p][p][/p][/p] JS框架是用JavaScript编写的应用程序框架,它与控制流中的JS库不同,一些最常用的框架是:
问题 32: window 与 document 的区别: window:JS 的 window 是一个全局对象,它包含变量、函数、history、location。 document:document也位于window之下,可以视为window的属性。 问题 33: innerHTML 和 innerText 的区别 innerHTML:也就是从对象的起始位置到终止位置的全部内容,包括Html标签。 innerText:从起始位置到终止位置的内容, 但它去除Html标签 问题 34:JS中的事件冒泡是什么 事件冒泡是HTML DOM API中事件传播的一种方式,当一个事件发生在另一个元素中的一个元素中,并且两个元素都注册了该事件的句柄时。通过冒泡,事件首先由最内部的元素捕获和处理,然后传播到外部元素。执行从该事件开始,并转到其父元素。然后执行传递给父元素,以此类推,直到body元素。 问题 35:NaN 是什么 NaN 即非数值(Not a Number),NaN 属性用于引用特殊的非数字值,该属性指定的并不是不合法的数字。 NaN 属性 与 Number.Nan 属性相同。 提示: 请使用 isNaN() 来判断一个值是否是数字。原因是 NaN 与所有值都不相等,包括它自己。 问题 36:JS的原始/对象类型如何在函数中传递? 两者之间的一个区别是,原始数据类型是通过值传递的,对象是通过引用传递的。
问题 37:如何在JS中将任意基的字符串转换为整数 parseInt(string, radix) 将一个字符串 string 转换为 radix 进制的整数, radix 为介于2-36之间的数,如下: parseInt("4F", 16) 复制代码 问题 38:2+5+ 3的结果是什么 由于2和5是整数,它们将以数字形式相加。因为3是一个字符串,它将与 7 拼接,结果是73。 问题 39:export 和 import 是什么 import和export有助于咱们编写模块化JS代码。 使用import和export,咱们可以将代码拆分为多个文件,如下: //------ lib.js ------</span> export const sqrt = Math.sqrt;</span> export function square(x) {</span> return x * x;</span> } export function diag(x, y) { return sqrt(square(x) + square(y)); } //------ main.js ------</span> { square, diag } from 'lib'; console.log(square(5)); // 25 console.log(diag(4, 3)); // 5 复制代码 问题40:JS中的“严格”模式是什么以及如何启用? 严格模式是在代码中引入更好的错误检查的一种方法。
问题41:JS 中的 prompt 框是什么 提示框是允许用户通过提供文本框输入输入的框。 prompt() 方法显示一个对话框,提示访问者输入。 如果您希望用户在输入页面之前输入值,则通常会使用提示框。 弹出提示框时,用户必须在输入输入值后单击“确定”或“取消”才能继续。 问题42:下面代码的输出是什么? var Y = 1; if (eval(function f(){})) { y += typeof F; } console.log(y); 复制代码 打印1undefined。if条件语句使用eval求值,因此eval(function f(){})返回函数f(){}(为真)。因此,在if语句中,执行typeof f返回undefined,因为if语句代码在运行时执行,而if条件中的语句在运行时计算。 问题43:call 和 apply有什么区别 call和apply可以用来重新定义函数的执行环境,也就是this的指向;call和apply都是为了改变某个函数运行时的context,即上下文而存在的,换句话说,就是为了改变函数体内部this的指向。 call()调用一个对象的方法,用另一个对象替换当前对象,可以继承另外一个对象的属性,它的语法是: Function.call(obj[, param1[, param2[, [,...paramN]]]]); 复制代码 说明:call方法可以用来代替另一个对象调用一个方法,call方法可以将一个函数的对象上下文从初始的上下文改变为obj指定的新对象,如果没有提供obj参数,那么Global对象被用于obj apply() 和call()方法一样,只是参数列表不同,语法: Function.apply(obj[, argArray]); 复制代码 说明:如果argArray不是一个有效数组或不是arguments对象,那么将导致一个TypeError,如果没有提供argArray和obj任何一个参数,那么Global对象将用作obj。 问题44:如何在JS中清空数组 有许多方法可以用来清空数组: 方法一: arrayList = [] 复制代码 上面的代码将把变量arrayList设置为一个新的空数组。如果在其他任何地方都没有对原始数组arrayList的引用,则建议这样做,因为它实际上会创建一个新的空数组。咱们应该小心使用这种清空数组的方法,因为如果你从另一个变量引用了这个数组,那么原始的引用数组将保持不变。 方法二: arrayList.length = 0; 复制代码 上面的代码将通过将其length设置为0来清除现有数组。这种清空数组的方式还会更新指向原始数组的所有引用变量。 因此,当你想要更新指向arrayList的所有引用变量时,此方法很有用。 方法三: arrayList.splice(0, arrayList.length); 复制代码 这处方法也行,当然这种清空数组的方法也将更新对原始数组的所有引用。 方法四: while(arrayList.length) { arrayList.pop(); } 复制代码 上面的实现也可以空数组,但通常不建议经常使用这种方式。 问题45:以下代码的输出什么 var output = (function(x) { delete x; return x; } )(0); console.log(output); 复制代码 打印 0。delete操作符用于从对象中删除属性。这里x不是一个对象,而是一个局部变量,删除操作符不影响局部变量。 问题46:以下代码的输出什么 var X = { foo : 1}; var output = (function() { delete X.foo; return X.foo; } )(); console.log(output); 复制代码 输出 undefined。delete操作符用于删除对象的属性。X是一个具有foo属性的对象,由于它是一个自调用函数,所以咱们将从对象X中删除foo属性。这样做之后,当咱们试图引用一个被删除的foo属性时,结果是undefined。 问题47:以下代码的输出什么 var foo = function Bar() { return 7; }; typeof Bar(); 复制代码 输出将是引用错误。函数定义只能有一个引用变量作为其函数名。 问题49:为什么要将JS源文件的全部内容包装在一个函数中 这是一种越来越普遍的做法,被许多流行的JS库所采用。 这种技术围绕文件的整个内容创建一个闭包,最重要的是,它可以创建一个私有命名空间,从而有助于避免不同JS模块和库之间潜在的名称冲突。 该技术的另一个特性是允许为全局变量提供一个简单的别名,这在jQuery插件中经常使用。 问题50:JS中的转义字符是什么 JS转义字符使咱们能够在不破坏应用程序的情况下编写特殊字符。转义字符(\)用于处理特殊字符,如单引号、双引号、撇号和&号,在字符前放置反斜杠使其显示。 如:document.write("I am a \"good\" boy") 代码部署后可能存在的BUG没法实时知道,事后为了解决这些BUG,花了大量的时间进行log 调试,这边顺便给大家推荐一个好用的BUG监控工具 Fundebug。 原文:hackr.io/blog/javasc… 作者:前端小智 链接:https://juejin.im/post/5d6c53476fb9a06acc009e00 来源:掘金 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 |
|||||||||||||||||||||||||||||||||||||||||||||||
|
沙发#
发布于:2021-03-02 09:58
|
|