2018百度前端

2018百度前端


一、实现函数link,该DOM元素内会给出一段随机文本,可能包含一些链接,比如https://www.baidu.com,或者 www.baidu.com?from=onlineExam,如果出现链接文本,请给该链接文本加上链接标签,用户点击后能直接在新窗口中打开该链接。

function link() {
    var Dom = document.getElementById("jsContainer");
    var text = Dom.innerText;
    var reg = new RegExp("(http://||https://)?www.[-A-Za-z0-9+&@#/%?=~_|!:,.;]+[-A-Za-z0-9+&@#/%=~_|]", "g");

    var text = text.replace(reg, function(result) {
        if ((new RegExp("^www.")).test(result)) {
            result = "http://" + result;
        }
        return '<a target="_blank" href=' + result + '>' + result + '</a>'
    })
    Dom.innerHTML = text;
}

二、移动端前端开发与PC端比有哪些不同?

  1. PC考虑的是浏览器的兼容性,而移动端开发考虑的更多的是手机兼容性,因为目前不管是android手机还是ios手机,一般浏览器使用的都是webkit内核,所以说做移动端开发,更多考虑的应该是手机分辨率的适配,和不同操作系统的略微差异化。
  2. 在部分事件的处理上,移动端多出来的事件是触屏事件,而缺少的是hover事件。 另外包括移动端弹出的手机键盘的处理,这样的问题在PC端都是遇不到的。
  3. 在布局上,移动端开发一般是要做到布局自适应的,我使用的一直是rem布局,感觉很好。
  4. 动画处理上,PC端由于要考虑IE的兼容性,所以通常使用JS做动画的通用性会更好一些,但是CSS3做了很大的牺牲, 而在手机端,如果要做一些动画、特效等,第一选择肯定是CSS3, 既简单、效率又高。
    第五: 微信的一些接口组好能去实现一遍,熟悉一下肯定是有好处的,比如通过微信分享文章,title、description、icon等图标的配置,这些还是要会的。

第六: 百度地图的一些API接口,也得去实现一下,这些对于移动端来说,LBS是一个非常重要的特性,所以地图这块肯定是要了解的,在加上百度地图这块已经是一个比较成熟的平台了,所以学起来也比较容易。

第七: CSS3的动画一定要比较熟练,这在移动端用的还是比较多的。

第八: 一般pc端用jquery,移动端用zepto,因为移动端的流量还是比较重要的, 所以引入的资源或者插件,能小则小,一个30k的资源和一个80k的资源,在移动端的差别还是挺大的。


三、普通字符串和 new String()的区别

比较普通字符串,new String()String()的区别

const str1 = 'lalalalalla';  
const str2 = new String('lalalalalla');
const str3 = String('lalalalalla');

console.log(typeof str1);  //  string
console.log(typeof str2);  // object
console.log(typeof str3);  //  string

四、闭包

function Test() {
    var x = 0;
    return function() {
        console.log(x++);
    }
}
 
var f1 = Test(),
    f2 = Test();
f1();   0
f1();   1
f2();   0

因为f1和f2分别是两个函数,开辟了两块不同的空间,因此f2不会在f1的基础上增加。

五、常见的URL

http(s)://   超文本传输协议

ftp://         传输文件协议

file://         获取本地文件协议

mailto://    发邮件协议

tel://          打电话协议

sms://        发短信协议

六、form标签

在这里插入图片描述
application/x-www-form-urlencoded:在发送前编码所有字符(默认)
multipart/form-data:不对字符编码。在使用包含文件上传控件的表单时,必须使用该值。
text/plain:空格转换为 “+” 加号,但不对特殊字符编码。

七、Linux系统中某文件的权限是d-r-xrw—x,那么以下描述正确的有()

d:表示文件类型,代表文件类型为目录。
r-:代表所有者的权限。只读。
xrw-:所有者所属组的权限。x(可执行),r(只读),w(可写).
x:非本组成员的权限.可执行

前三位:文件拥有者权限

中间三位:同组群的权限

后三位:其它组群的权限

八、Node.js中,下列哪个选项能取得当前脚本文件的路径?

  • __filename (√)
    可以获得包含文件名的绝对路径
  • __dirname
    可以获得当前文件所在的绝对路径(不包含文件名)

九、下列关于Express说法正确的是?

  • Express不是MVC模型
  • Express是一个NPM模块

十、对于一个基本有序的序列,想让其全部有序,同时想求其最大的5个数,使用哪种排序算法最好?

基本有序,即相当于最好情况,因此只需要看最好情况时间复杂度,即哪种排序的时间复杂度为O(n):插入、希尔、冒泡、桶
在这里插入图片描述

十一、有一个中缀表达式为a*(b-(c+d)),它的后缀表达式可以是什么?

中缀表达式转后缀表达式:
(1)首先确定表达式表达式A的运算顺序,然后加括号:((1 + (( 2 + 3)* 4 )) – 5 )

(2)从最里面的一层括号开始运算,转换成后缀表达式的方法为:(忽略括号)数字在前,符号在后。

          1)( 2 + 3) => 23+

          2)  (( 2 + 3)* 4 ) => 23+4*

          3) (1 + (( 2 + 3)* 4 ))=> 123+4*+     [按照运算次序,从左到右排列]

          4)((1 + (( 2 + 3)* 4 )) – 5 )=> 123+4*+ 5-

    后缀表达式为:12 3 + 4 * + 5 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值