js面试题 ╰半夏微凉° 2022-11-09 14:30 121阅读 0赞 -------------------- ### js面试题 ### * * * * * 1. document 操作节点的方法有哪些 * 2. var a = \{\} 与 var a = function()\{\} 的区别 * 3. 怎样获取 <select> 的文本? * 4. 怎样关闭 <checkbox> 的选项? * 5. let 与 const 的区别 * 6. 使用JavaScript开启一个ajax * 7. JavaScript提供了哪些定时器 * 8. JavaScript如何处理兼容性问题? * 9. 浅谈JavaScript的原型机制 -------------------- ##### 1. document 操作节点的方法有哪些 ##### 获取节点: document.getElementById('text') document.getElementsByName(name)[0]; document.getElementsByClassName('c-mini')[0]; document.getElementsByTagName('div')[0]; 创建节点/属性/文本节点: var a1 = document.createElement("li"); a1.createAttribute(attrName); a1.createTextNode(text); 获取/设置/删除节点的属性值: <img src="images/1.jpg" class="image-box" title="头像" alt="头像" id="a1"> var myNode = document.getElementsByTagName("img")[0]; console.log(myNode.getAttribute("src")); console.log(myNode.getAttribute("class")); console.log(myNode.getAttribute("title")); myNode.setAttribute("src","images/3.jpg"); myNode.setAttribute("class","image3-box"); myNode.setAttribute("id","你好"); myNode.removeAttribute("id"); -------------------- ##### 2. var a = \{\} 与 var a = function()\{\} 的区别 ##### var a = \{\} 此时 a 是一个对象,没有任何属性 var a = \{‘name’ : ‘blu’\} 此时 a 是一个对象,有一个 name 属性 var a = function()\{\} 此时a指向一个函数,该函数什么事都不干 -------------------- ##### 3. 怎样获取 <select> 的文本? ##### <select id="s1" > <option value="1">教学类</option> <option value="2"> 技术类</option> </select> var select = document.getElementById("s1"); 获取当前选中的值 var value = select.value; 获得下拉框所有option的节点对象 var options = select.options; 获得指定索引的value值 var value1 = options[0].value; 获得指定索引的文本内容 var text1 = options[0].text; 获得当前选中的option的索引 var index = select.selectedIndex; -------------------- ##### 4. 怎样关闭 <checkbox> 的选项? ##### <div> <input type="checkbox" id="scales" name="scales" checked> <label for="scales">Scales</label> </div> var mycheckbox = document.getElementById("scales"); 设置选中 mycheckbox.attr('checked','checked') 取消选中 mycheckbox.checked = false -------------------- ##### 5. let 与 const 的区别 ##### let 与 const 都只在声明所在的块级作用域内有效 let 声明的变量可以改变,值和类型都可以改变 const 声明的常量值不可改变,且一旦声明就必须立即初始化 const a; //报错,一旦声明变量,应该立即赋值!! const b = 2; b = 3//报错,因为定义常量之后不能成重新赋值!! -------------------- ##### 6. 使用JavaScript开启一个ajax ##### 先创建一个 XMLHttpRequest 对象(如果不支持创建该对象的浏览器,则需要创建 ActiveXObject) <input type="button" value="异步请求" name="btn" id="btn" onclick="getData()"/> Get 请求 function getData() { var xmlhttp; if(window.XMLHttpRequest){ //针对ie7+、firefox、chrome等浏览器 xmlhttp=new XMLHttpRequest(); }else{ //针对ie5、6 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP") } xmlhttp.onreadystatechange=function(){ //readystate状态为4(服务器请求完成)并且http的状态码为200(成功)时 if(xmlhttp.readyState==4 && xmlhttp.status==200){ alert(xmlhttp.responseText) document.getElementById("text").value=xmlhttp.responseText; } } xmlhttp.open("GET","localhost:8080/test?name=blu"); xmlhttp.send(); } POST 请求 function getData() { var xmlhttp; if(window.XMLHttpRequest){ xmlhttp=new XMLHttpRequest(); }else{ xmlhttp=new ActiveXObject("Microsoft.XMLHTTP") } xmlhttp.onreadystatechange=function(){ if(xmlhttp.readyState==4 && xmlhttp.status==200){ alert(xmlhttp.responseText) document.getElementById("text").value=xmlhttp.responseText; } } xmlhttp.open("POST","localhost:8080/test"); xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded');//post 传值必写 //xmlhttp.send(null); var data={ uid:1,pid:4} xmlhttp.send(data); } -------------------- ##### 7. JavaScript提供了哪些定时器 ##### 一次性定时器:window.setTimeout() 周期性定时器:window.setInterval() <script type="text/javascript"> //一次性的 window.setTimeout(function () { alert(1); },1000) //周期性的 window.setInterval(function () { alert(2); },1000) </script> -------------------- ##### 8. JavaScript如何处理兼容性问题? ##### 方法1:判断当前是哪款浏览器内核,根据不同内核调用不同的方法 方法2:存在性检查的方式(推荐),判断该对象或方法是否存在 示例:判断当前浏览器是否支持trim()方法 if(email.value.trim){ if(email.value.trim() == ""){ email.value = "请输入邮箱地址"; } }else{ //正则表达式-去除前后空格 if(email.value.replace(/(^\s+)|(\s+$)/g,"") == ""){ email.value = "请输入邮箱地址"; } } -------------------- ##### 9. 浅谈JavaScript的原型机制 ##### JavaScript的原型有一个关键的作用就是来扩展其原有类的特性,比如下面这段代码,给String扩展了hello方法。很多的框架就是采用这种方式来进行扩展,从而让框架更易用。 var str = "abc"; String.prototype.hello = function(){ alert(通过原型的方式来扩展原有的类的方法或属性"); } str.hello(); --------------------
相关 JS面试题 > JS初级开始 > 1.基本数据类型有几种?(高频) String,Boolean,Number,Null,undefiend,Symbol(es6) Symbol: 左手的ㄟ右手/ 2022年09月10日 08:18/ 0 赞/ 156 阅读
相关 js面试题 一、作用域 1、写出console.log结果(作用域) (function(){ var a = b = 2; })() con ╰半橙微兮°/ 2022年05月29日 11:48/ 0 赞/ 176 阅读
相关 js(面试题) shuffle:顾名思义,将数组随机排序,常在开发中用作实现随机功能。 我们来看看一个 shuffle 可以体现出什么代码品味。 错误举例 function 小灰灰/ 2022年05月29日 02:38/ 0 赞/ 164 阅读
相关 js面试题 > 1.JavaScript中如何检测一个变量是一个String类型?请写出函数实现 方法①: function isString(obj){ 深藏阁楼爱情的钟/ 2022年04月02日 04:42/ 0 赞/ 185 阅读
相关 js 面试题 javascript的数据类型 原始类型:null,undefined,number(数字类型),string(字符串类型),boolean(布尔值类型),symbol(e 我会带着你远行/ 2022年03月18日 11:58/ 0 赞/ 214 阅读
相关 JS面试题 1.什么是JavaScript? JavaScript是一种客户端脚本语言,可以插入到HTML页面中,并且是目前较热门的Web开发语言。同时,JavaScript是基于对象 Dear 丶/ 2022年03月08日 10:22/ 0 赞/ 202 阅读
相关 js面试题 JavaScript 的组成 JavaScript 由以下三部分组成: ECMAScript(核心):JavaScript 语言基础 DOM(文档对象模型) 客官°小女子只卖身不卖艺/ 2022年02月22日 19:00/ 0 赞/ 364 阅读
相关 js 面试题 闭包: ![复制代码][copycode.gif] function fun(n,o) { console.log(o) retur 浅浅的花香味﹌/ 2022年02月19日 01:53/ 0 赞/ 203 阅读
相关 js 面试题 1:toString function A() { this.name = "a"; this.toString = 一时失言乱红尘/ 2021年09月20日 13:26/ 0 赞/ 305 阅读
还没有评论,来说两句吧...