前端面试题汇总(JS 基础篇)**

1、javascript 的 typeof 返回哪些数据类型**

object number function boolean underfind stringtypeof null;//object typeof isNaN;// typeof isNaN(123) typeof [];//object Array.isARRAY(); es5toString.call([]);//”[object Array]” var arr=[]; arr.constructor;//Array

2、例举 3 种强制类型转换和 2 种隐式类型转换?
强制(parseInt,parseFloat,Number())
隐式(==)
1==”1”//true null==undefined//true
3、split() join()的区别
前者是切割成数组的形式,
后者是将数组转换成字符串
4、数组方法 pop() push() unshift() shift()
Push()尾部添加
pop()尾部删除
Unshift()头部添加
shift()头部删除
5、事件绑定和普通事件有什么区别
传统事件绑定和符合 W3C 标准的事件绑定有什么区别?

div1.onclick=function(){};<button onmouseover=””></button>
1、如果说给同一个元素绑定了两次或者多次相同类型的事件,那么后面的绑定会覆盖前面的绑定
 2、不支持 DOM 事件流 事件捕获阶段目标元素阶段=>事件冒泡阶段 addEventListener1、 如果说给同一个元素绑定了两次或者多次相同类型的事件,所有的绑定将会依次触发2、 支持 DOM 事件流的
 3、 进行事件绑定传参不需要 on 前缀 addEventListener(“click”,function(){},true);//此时的事件就是在事件冒泡阶段执行 ie9 开始,ie11 edge:addEventListener ie9 以前:attachEvent/detachEvent 1、 进行事件类型传参需要带上 on 前缀2、 这种方式只支持事件冒泡,不支持事件捕获 

事件绑定是指把事件注册到具体的元素之上,普通事件指的是可以用来注册的事件
6、IE 和 DOM 事件流的区别

 1.执行顺序不一样、2.参数不一样 3.事件加不加 on4.this 指向问题

IE9 以前:attachEvent(“onclick”)、detachEvent(“onclick”) IE9 开始跟 DOM 事件流是一样的,都是 addEventListener

7、IE 和标准下有哪些兼容性的写法

var ev = ev || window.event
document.documentElement.clientWidth || document.body.clientWidth
var target = ev.srcElement||ev.target

8、call 和 apply 的区别
call 和 apply 相同点: 都是为了用一个本不属于一个对象的方法,让这个对象去执行

toString.call([],1,2,3)
toString.apply([],[1,2,3])
Object.call(this,obj1,obj2,obj3)
Object.apply(this,arguments)

9、b 继承 a 的方法
考点:继承的多种方式

 function b(){} b.protoototype=new a;

10、JavaScript this 指针、闭包、作用域
this:指向调用上下文
闭包:内层作用域可以访问外层作用域的变量
作用域:定义一个函数就开辟了一个局部作用域,整个js执行环境有一个全局作用域
11、事件委托是什么
符合 W3C 标准的事件绑定addEventLisntener /attachEvent
让利用事件冒泡的原理,让自己的所触发的事件,让他的父元素代替执行!
12、闭包是什么,有什么特性,对页面有什么影响
闭包就是能够读取其他函数内部变量的函数。
闭包的缺点:滥用闭包函数会造成内存泄露,因为闭包中引用到的包裹函数中定义的变量都
永远不会被释放,所以我们应该在必要的时候,及时释放这个闭包函数
13、如何阻止事件冒泡和默认事件
e. stopPropagation();//标准浏览器
event.canceBubble=true;//ie9 之前
阻止默认事件:
为了不让 a 点击之后跳转,我们就要给他的点击事件进行阻止

 return falsee.preventDefault();

14、添加 删除 替换 插入到某个接点的方法

obj.appendChild()
obj.insertBefore() //原生的 js 中不提供 insertAfter();
obj.replaceChild()//替换
obj.removeChild()//删除

15、javascript 的本地对象,内置对象和宿主对象
本地对象为array obj regexp等可以new实例化
内置对象为gload Math 等不可以实例化的
宿主为浏览器自带的document,window
16、document load 和 document ready 的区别
Document.onload是在结构和样式加载完才执行 js
window.onload:不仅仅要在结构和样式加载完,还要执行完所有的样式、图片这些资源文 件,全部加载完才会触发window.onload事件
Document.ready原生中没有这个方法,jquery中有$().ready(function)

**17、”==”和“===”的不同**

前者会自动转换类型
后者不会
1==”1”
null==undefined
===先判断左右两边的数据类型,如果数据类型不一致,直接返回 false 之后才会进行两边值的判断
18、javascript 的同源策略
一段脚本只能读取来自于同一来源的窗口和文档的属性,这里的同一来源指的是主机名、协 议和端口号的组合
http,ftp:协议
主机名;localhost
端口名:8
同源策略带来的麻烦:ajax在不0:http 协议的默认端口
https:默认端口是8083
同域名下的请求无法实现,
如果说想要请求其他来源的js文件,或者json数据,那么可以通过jsonp来解决
19、编写一个数组去重的方法

var arr=[1,1,3,4,2,4,7];=>[1,3,4,2,7]

一个比较简单的实现就是:
1、 先创建一个空数组,用来保存最终的结果 2、 循环原数组中的每个元素
3、 再对每个元素进行二次循环,判断是否有与之相同的元素,如果没有,将把这个元素放 到新数组中
4、 返回这个新数组

  function oSort(arr) { var result ={}; var newArr=[]; for(var i=0;i<arr.length;i++){ if(!result[arr]) {newArr.push(arr) result[arr]=1 }}return newArr}</arr.length;i++)

20、JavaScript 是一门什么样的语言,它有哪些特点?
脚本语言
运行环境:浏览器中的 JS 引擎(v8.。。)
语言特性:面向对象,动态语言:

//动态语言的特性
var num=10;//num 是一个数字类型
num="jim";//此时 num 又变成一个字符串类型
//我们把一个变量用来保存不同数据类型的语言称之为一个动 态语言//静态语言:c# java c c++ //静态语言在声明一个变量就已经确定了这个变量的数据类型,// 而且在任何时候都不可以改变他的数据类型

21、JavaScript 的数据类型都有什么?
基本数据类型:String,Boolean,number,undefined,object,Null
引用数据类型:Object(Array,Date,RegExp,Function)
那么问题来了,如何判断某变量是否为数组数据类型?
方法一.判断其是否具有“数组性质”,如 slice()方法。可自己给该变量定义slice方法, 故有时会失效
方法二.obj instanceof Array在某些IE版本中不正确
方法三.方法一二皆有漏洞,在ECMA Script5中定义了新方法Array.isArray(), 保证其兼容性,
最好的方法如下:toString.call(18);
//”[object Number]” toString.call(“”);
//”[object String]”解析这种简单的数据类型直接通过typeof就可以直接判断toString.call常用于判断数组、正则这些复杂类型

 toString.call(/[0-9]{10}/)//”[object RegExp]” if(typeof Array.isArray==="undefined"){ Array.isArray = function(arg){ return Object.prototype.toString.call(arg)==="[object Array]" };}

22、已知 ID 的 Input 输入框,希望获取这个输入框的输入值,怎么做?(不使 用第三方框架)

document.getElementById(“ID”).value

23、希望获取到页面中所有的 checkbox 怎么做?(不使用第三方框架)

var domList = document.getElementsByTagName(‘input’)var checkBoxList = [];//返回的所有的 checkbox var len = domList.length; //缓存到局部变量 while (len--) { //使用 while 的效率会比 for 循环更高if (domList[len].type == ‘checkbox’) { checkBoxList.push(domList[len]); } }

24、设置一个已知 ID 的 DIV 的 html 内容为 xxxx,字体颜色设置为黑色(不使用 第三方框架)

var dom = document.getElementById(“ID”);
dom.innerHTML = “xxxx”
dom.style.color = “#000

25、当一个 DOM 节点被点击时候,我们希望能够执行一个函数,应该怎么做?
直接在DOM里绑定事件:<div onclick=”test()”>JS里通过 onclick绑定:xxx.onclick = test通过事件添加进行绑定:addEventListener(xxx, ‘click’, test)那么问题来了,Javascript 的事件流模型都有什么? “事件冒泡”:事件开始由最具体的元素接受,然后逐级向上传播
“事件捕捉”:事件由最不具体的节点先接收,然后逐级向下,一直到最具体的
DOM 事件流”:三个阶段:事件捕捉,目标阶段,事件冒泡

26、看下列代码输出为何?解释原因。
代码如下:

var a; alert(typeof a); // “undefined” //alert(b); // 报错b=10; alert(typeof b);//”number”

解释:Undefined是一个只有一个值的数据类型,这个值就是“undefined”,在使用var 声明变量但并未对其赋值进行初始化时,这个变量的值就是 undefined。而b由于未声明将 报错。注意未申明的变量和声明了未赋值的是不一样的。
undefined会在以下三种情况下产生:
1、 一个变量定义了却没有被赋值
2、 想要获取一个对象上不存在的属性或者方法: 3、 一个数组中没有被赋值的元素
注意区分 undefined 跟 not defnied(语法错误)是不一样的
27、看下列代码,输出什么?解释原因。
var a = null;
alert(typeof a); //object
解释:null是一个只有一个值的数据类型,这个值就是null。表示一个空指针对象,所以用 typeof检测会返回”object”
28、看下列代码,输出什么?解释原因

var undefined;//此时 undefined 这个变量的值是 undefined
undefined == null; // true1 == true; // true 此时会把布尔类型的值转换为数字类型 true=1 false=0
2 == true; // false0 == false; // true0 == ''; // trueNaN == NaN; // false[] == false; // true[] == ![]; // true undefined 与 null 相等,但不恒等(===) 一个是 number 一个是 string 时,会尝试将 string 转换为 number尝试将 boolean 转换为 number,0 或 1尝试将 Object 转换成 number 或 string,取决于另外一个对比量的类型 所以,对于 0、空字符串的判断,建议使用 “===” 。“===”会先判断两边的值类 型,类型不匹配时为 false。 那么问题来了,看下面的代码,输出什么,foo 的值为什么?var foo = "11"+2-"1"; console.log(foo);//111console.log(typeof foo);
//执行完后 foo 的值为 111,foo 的类型为 number。

29、看代码给答案。

var a = new Object();a.value = 1;b = a; {value:1} b.value = 2; alert(a.value);//2

答案:2(考察引用数据类型细节)

30 、 已 知 数 组 var stringArray = [“This”, “is”, “Baidu”, “Campus”],Alert 出”This is Baidu Campus”。
答案:alert(stringArray.join(“ ”))

已知有字符串 foo=”get-element-by-id”,写一个 function 将其转化成驼峰表示法”

getElementById”。 //
function combo(msg){ var arr=msg.split("-");//[get,element,by,id]
for(var i=1;i<arr.length;i++){
arr[i]=arr[i].charAt(0).toUpperCase()+arr[i].substr(1,arr[i].length -1);//Element }msg=arr.join("");
//msg=” getElementById”
return msg; }//(考察基础 API)

31、var numberArray = [3,6,2,4,1,5]; (考察基础 API)

  1. 实现对该数组的倒排,输出[5,1,4,2,6,3]
function combo(msg){
var arr=msg.split("-");for(var i=1;i<arr.length;i++){
arr[i]=arr[i].charAt(0).toUpperCase()+arr[i].substr(1,arr[i].length -1);
}msg=arr.join("");return msg; }

32、输出今天的日期,以 YYYY-MM-DD 的方式,比如今天是 2014 年 9 月 26 日, 则输出 2014-09-26

var d = new Date();
// 获取年,getFullYear()返回 4 位的数字var year = d.getFullYear();// 获取月,月份比较特殊,0 是 1 月,11 是 12 月 var month = d.getMonth() + 1;// 变成两位 month = month < 10 ? '0' + month : month; // 获取日var day = d.getDate(); day = day < 10 ? '0' + day : day;
alert(year + '-' + month + '-' + day);

33、将字符串”<tr><td>{$id}</td><td>{$name}</td></tr>中的{$id}替换 成10{$name}替换成 Tony(使用正则表达式)

”<tr>
<td>
{$id}
</td>
<td>
{$id}
_{$name}
</td>
</tr>”
.replace(/{\$id}/g, ’ 10′).replace(/{\$name}/g, ‘Tony’);

34、为了保证页面输出安全,我们经常需要对一些特殊的字符进行转义,请写 一个函数 escapeHtml,将<, >, &, “进行转义

function escapeHtml(str) {//[<>”&]:中括号中字符只要其中的一个出现就代表满足条件//给 replace 第二个参数传递一个回调函数,回调函数中参数就是匹配结果,如果匹配不到就是 null return str.replace(/[<>”&]/g, function(match) {switch (match) { case “<”: return “&lt;”; case “>”: return “&gt;”;case “&”: return “&amp;”;case “\””: return “&quot;”; } }); }

35、foo = foo||bar ,这行代码是什么意思?为什么要这样写?
这种写法称之为短路表达式
答案:if(!foo) foo = bar; //如果 foo 存在,值不变,否则把 bar 的值赋给 foo。
短路表达式:作为”&&”和”||”操作符的操作数表达式,这些表达式在进行求值时,只要 最终的结果已经可以确定是真或假,求值过程便告终止,这称之为短路求值。
注意 if 条件的真假判定,记住以下是 false 的情况:
空字符串、false、undefined、null、0
36、看下列代码,将会输出什么?(变量声明提升)

var foo = 1;
function(){console.log(foo);var foo = 2;console.log(foo);}

答案:输出 undefined 和 2。上面代码相当于:

var foo = 1;function(){var foo; console.log(foo);//undefined foo = 2; console.log(foo); // 2; }

函数声明与变量声明会被 JavaScript 引擎隐式地提升到当前作用域的顶部,但是只提升名 称不会提升赋值部分。
37、用 js 实现随机选取 10–100 之间的 10 个数字,存入一个数组,并排序。

var iArray = [];
funtion getRandom(istart, iend){
var iChoice = istart - iend +1;
return Math.floor(Math.random() * iChoice + istart; }
Math.random()就是获取 0-1 之间的随机数(永远获取不到 1)
for(var i=0; i<10; i++){
var result= getRandom(10,100);
iArray.push(result); }
iArray.sort();

38、把两个数组合并,并删除第二个元素。

var array1 = ['a','b','c'];
var bArray = ['d','e','f'];var cArray = array1.concat(bArray); cArray.splice(1,1);

39、怎样添加、移除、移动、复制、创建和查找节点(原生 JS,实在基础,没 细写每一步)
1)创建新节点
createDocumentFragment() //创建一个 DOM 片段
createElement() //创建一个具体的元素
createTextNode() //创建一个文本节点
2)添加、移除、替换、插入
appendChild() //添加
removeChild() //移除
replaceChild() //替换
insertBefore() //插入
3)查找 getElementsByTagName() //通过标签名称
getElementsByName() //通过元素的 Name 属性的值
getElementById() //通过元素 Id,唯一性

**40、有这样一个 URL:http://item.taobao.com/item.htm?a=1&b=2&c=&d=xxx&e, 请写一段 JS 程序提取 URL 中的各个 GET 参数(参数名和参数个数不确定),将其 按 key-value 形式返回到一个 json 结构中,如{a:’1′, b:’2′, c:”, d:’ xxx’, e:undefined}。如何实现? **

function serilizeUrl(url) {var result = {};url = url.split("?")[1];var map = url.split("&");for(var i = 0, len = map.length;i < len; i++) {result<script>jQuery(function($){$("#google-maps-1").gMap({controls:false,scrollwheel: false,markers: [{address: "",icon: {image: "http://blog.jobbole.com/wp-content/themes/jobboleblogv3/_assets/img/_colors/red/pin.png",iconsize: [32, 32],iconanchor: [16,27],infowindowanchor: [16, 27]}}],address: "",zoom: 15,icon: {image: "http://blog.jobbole.com/wp-content/themes/jobboleblogv3/_assets/img/_colors/red/pin.png",iconsize: [32, 32],iconanchor: [16,27],infowindowanchor: [16, 27]}});});</script><div id="google-maps-1" class="google-maps" style="width: 100%; height: 200px;"></div>.split("=")[0]] = map[i].split("=")[1];}return result; }

41、正则表达式构造函数 var reg=new RegExp(“xxx”)与正则表达字面量 var reg=//有什么不同?匹配邮箱的正则表达式?
当使用 RegExp()构造函数的时候,不仅需要转义引号(即\”表示”),并且还需要 双反斜杠(即\表示一个\)。使用正则表达字面量的效率更高。 邮箱的正则匹配:

var regMail = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((.[a-zA-Z0-9_-]{2,3}){1,2})$/;

看下面代码,给出输出结果是?。

for(var i=1;i<=3;i++){setTimeout(function(){ console.log(i); },0); };

答案:4 4 4。
原因:Javascript 事件处理器在线程空闲之前不会运行。
如何让上述代码输出 1 2 3?

for(var i=1;i<=3;i++){
setTimeout((function(a){
//改成立即执行函数
console.log(a);
})(i),0);};
//输出123

42、写一个 function,清除字符串前后的空格。(兼容所有浏览器)
使用自带接口 trim(),考虑兼容性:

if (!String.prototype.trim) {
String.prototype.trim = function() {return this.replace(/^\s+/, "").replace(/\s+$/,""); //\s 匹配空白字符:回车、换行、制表符 tab 空格} } // test the function var str = " \t\n test string ".trim();alert(str == "test string");// alerts "true"

43、Javascript 中 callee 和 caller 的作用?
arguments.callee:获得当前函数的引用
caller 是返回一个对函数的引用,该函数调用了当前函数;
callee 是返回正在被执行的 function 函数,也就是所指定的 function 对象的正文。
那么问题来了?如果一对兔子每月生一对兔子;一对新生兔,从第二个月起就开始生兔子; 假定每对兔子都是一雌一雄,试问一对兔子,第 n 个月能繁殖成多少对兔子?(使用 callee 完成)这个问题很经典!

var result=[];
function fn(n){//典型的斐波那契数列
if(n==1){
return 1;
}else if(n==2){
return 1;
}else{
if(result[n]){
return result[n];
}else{ //argument.callee()表示 fn() result[n]=arguments.callee(n-1)+arguments.callee(n -2); return result[n];
}
}
}

每天一句中文式外语

俄语

деньги (借你给) 钱
посольство (把所里撕特挖) 大使馆
таможня (打毛日尼阿) 海关
пошлина (抱失离那) 关税
паспорт (八四八勒特) 护照
виза (为咱) 签证
выездная виза (为业自得拿呀 为咱)
出境卡
въездная виза (无业自得拿呀 为咱)
入境卡
самолёт (撒马料特) 飞机
прямой рейс ( 扑俩贸易 列意思 )
直达航班
пересадка (别列撒特嘎) 转机
аэропорт (阿爱拉波勒特) 机场
билет в первом классе (比列特
夫 别了挖木 克拉谢) 头等仓机票
билет в туристическом классе (比列
特 夫 度累死几切丝嘎木 克拉谢) 经济仓票
вокзал (挖个砸) 火车站
поезд (波也斯特) 火车
билет на поезд (比列特 拿 波也斯特)
火车票
станция (思党测呀) 车站
автобус (阿富多不死) 公交车
такси (大可喜) 出租车
улица (屋里擦) 街道
хлеб (和列谱) 面包
буфет (不费特) 小餐馆
столовая (四达罗挖呀) 食堂
блюда (不留答) 菜
рис (累死) 米饭
лопша (拉扑厦) 面条
пиво (比瓦) 啤酒
водка (我特加) 伏特加
напитка (拿比特嘎) 饮料
сок (索克) 果汁饮料
суп (素朴) 汤
чай (恰以) 茶
минеральная вода (米涅拉里拿呀 瓦大)
矿泉水
сигарета (吸嘎列答) 香烟
больница (八里你擦) 医院
врач (无拉起) 医生
доктор (多可打了) 大夫
медсестра (灭材丝特拉) 护士
лекарство (列嘎勒斯特挖) 药
грипп (哥离谱) 流感
аптека (阿铺接嘎) 药房
уборная‚туалет (无波了拿呀,度啊列特)
厕所
общественный туалет (阿不写丝特为
内衣 度阿列特) 公共厕所
спорт (斯波勒特) 体育运动
спортивный зал (斯扒了及无内衣 砸了)
健身房
баскетбол (巴思该特波) 篮球
футбол (复得包) 足球
пинг-понг (比恩克波恩克) 乒乓球
театр (接阿特) 歌舞剧院
кино (给诺) 电影院
баня (八尼阿) 浴室
банк (八恩克) 银行
магазин (马嘎则恩) 商店

前端面试题汇总(JS 基础篇)相关推荐

  1. 高频前端面试题汇总之计算机网络篇

    一.HTTP协议 1. GET和POST的请求的区别 Post 和 Get 是 HTTP 请求的两种方法,其区别如下: 应用场景: GET 请求是一个幂等的请求,一般 Get 请求用于对服务器资源不会 ...

  2. 前端面试题汇总(css基础篇)

    前端面试题汇总(css基础篇) 1 css sprite是什么,有什么优缺点 概念:将多个⼩图⽚拼接到⼀个图⽚中. 通过 background-position 和元素尺⼨调节需 要显示的背景图案. ...

  3. 前端面试题之浏览器原理篇

    前端面试题之浏览器原理篇 一.浏览器安全 1. 什么是 XSS 攻击? (1)概念 (2)攻击类型 2. 如何防御 XSS 攻击? 3. 什么是 CSRF 攻击? (1)概念 (2)攻击类型 4. 如 ...

  4. 前端面试题汇总(JavaScript面试纯干货)

    前端面试题汇总(JavaScript面试纯干货) 1 闭包 闭包就是能够读取其他函数内部变量的函数 闭包是指有权访问另⼀个函数作⽤域中变量的函数,创建闭包的最常⻅的⽅式就是在⼀个函数内创建另⼀个函数, ...

  5. 2019前端面试题汇总

    面试题 js + 框架 闭包的作用 函数内部变量外用 || 在一个函数内部嵌套一层或多层函数 可以将内部变量外用 副作用: 违背垃圾回收机制 ie下回造成内存泄漏 解决副作用方案: 变量使用结束后删除 ...

  6. 前端面试题总结(js部分)|下

    40 . 有这样一个 URL: http://item.taobao.com/item.htm?a=1&b=2&c=&d=xxx&e , 请写一段JS程序提取 URL ...

  7. 前端面试题汇总(jQuery)

    前端面试题汇总(jQuery) 1 你觉得jQuery或zepto源码有哪些写的好的地⽅ jquery源码封装在⼀个匿名函数的⾃执⾏环境中,有助于防⽌变量的全局污染,然后通过传⼊window对象参数, ...

  8. 2021前端面试题汇总——查漏补缺

    博主最近在持续面试(被虐)中,本片文章将持续更新 系列文章 大厂前端面试题总结(CSS篇) 大厂前端面试题总结(ES6篇) 大厂前端面试题总结(Vue篇) 大厂前端面试题总结(浏览器篇) 大厂前端面试 ...

  9. 前端面试题及答案---CSS篇

    码字不易,有帮助的同学希望能关注一下我的微信公众号:Code程序人生,感谢!代码自用自取. CSS伪类与伪元素区别 伪类(pseudo-classes) 其核心就是用来选择DOM树之外的信息,不能够被 ...

最新文章

  1. oracle的clob赋值_JAVA处理Oracle数据库CLOB读写操作
  2. python是高级动态编程语言-python是一种跨平台、开源、免费的高级动态编程语言,对么...
  3. 利用非递归方法实现二叉树的先序遍历
  4. SpringBoot整合mybatis(CRUD)
  5. 【离散数学】集合的划分与覆盖
  6. BeginnersBook Java IO 教程
  7. 编程语言-Ruby-问题整理
  8. 部分移动卡 无人接听时呼叫转移失败 问题分析
  9. SC16IS750在STM32的应用
  10. 手机怎样设置每年自动生日提醒
  11. 写给理工科大学生尤其是计算机专业大学生
  12. 服务器繁忙 微信 苹果,iOS 9正式放出 服务器繁忙苹果推荐用户早晨更新
  13. Base64系列第一篇 Base64介绍
  14. 做ctf题目的时候运行程序就会显示ImportError: cannot import name ‘flag‘ from ‘secret‘ 求大佬解答
  15. 程序员应如何提高系统分析能力(转)
  16. 尾递归优化 - 尾递归优化
  17. 字符集本地化(locale)与输入法系列讲座-----(3) truetype造字程序详解
  18. VBA 会被 Python 代替吗?
  19. 四足机器人 | GEM(elevation map) + Fast_Lio(odometry) 环境部署记录
  20. DataGrip初体验

热门文章

  1. mongodb 导出时间格式_MongoDB批量将时间戳转为通用日期格式示例代码 _ 蚂蚁视界...
  2. 在Ubuntu上安装Sublime Text 3
  3. LeetCode 动态规划《简单》部分 Python实现
  4. 在windows下安装webpy
  5. MFC开发IM-第三篇、资源视图--显示在另一个编辑器中打开
  6. 术语html的含义是,术语html指的是什么
  7. 排队8小时,火遍上海!美国最会装X的网红咖啡,又把中国人拿捏了
  8. 苹果发布iOS 15.3正式版 修复了Safari浏览器漏洞
  9. 小米旗下电商平台「有品有鱼」宣布于3月终止运营
  10. 《真还传》剧终:6亿欠款还完了?罗永浩被执行信息清零,最新回应来了