前端面试题整理---JS基础
为了督促自己学习,整理了一下前端的面试题
JavaScript:
JavaScript 中如何监测一个变量是String类型?
typeof(obj)==="string";
typeof obj ==="string";
obj.constructor ===string
JS中清除字符串空格的方法
方法一:使用正则匹配
// 去除所有的空格
var str1 = strings.replace(/\s*/g,"");
// 去掉两头的空格
var str2 = strings.replace(/(^\s*|\s*$)/g,"");
//去掉左边空格
var str3 = strings.replace(/^\s*/,"");
// 去掉右边空格
var str4 = strings.replace(/\s*$/,"");
实例
var strings = " this is an apple ";
// 去除所有的空格
var str1 = strings.replace(/\s*/g,"");
console.log(str1);
// 去掉两头的空格
var str2 = strings.replace(/(^\s*|\s*$)/g,"");
console.log(str2);
//去掉左边空格
var str3 = strings.replace(/^\s*/,"");
console.log(str3);
// 去掉右边空格
var str4 = strings.replace(/\s*$/,"");
console.log(str4)
方法二:使用str.trim()的方法
使用具有局限性,只能去除两头的空格,使用trimLeft()、trimRight()分别都只能去除字符串两端的空格
str = strings.trim();
方法三:使用jQuery$.trim()
$.trim()
函数会移除字符串开始和结尾处的所有换行符,空格(包括连续的空格)和制表符(tab)。如果这些空白字符在字符串中间时,它们将被保留,不会被移除。
var str = $.trim(str);
你如何获取浏览器URL中查询字符串中的参数?
测试地址:http://www.runoob.com/jquery/misc-trim.html?chanelid=123&name=lilei&age=23
var url = 'http://www.baidu.com?name=lilei&age=26&pwds=123456
unction showHref (holeHref){
var args = holeHref.split('?');
if(args[0] ==holeHref){
return ""
}
var argArr = args[1].split('&');
var objs = {};
for(var i=0;i<argArr.length;i++){
var arg = argArr[i].split('=');
objs[arg[0]] = arg[1];
}
return objs
// var argLastOne = argArr[argArr.length-1];
}
var href =showHref(url);
console.log(href['age']);
JS字符操作字符串的方法:
concat() --将两个或多个字符串拼接,返回新的字符串
indexOf()--返回字符串中一个字符串出现的第一个位置,如果没有,返回-1;
charAt()---返回指定位置的字符;
lastIndexOf()--返回字符串中一个字符最后一处出现的索引;若没找到,返回-1;
match()--检查字符串是否符合一个正则表达式;
substring()--返回字符串从开始位置,到结束位置之间的字符串;
substr()--返回字符串的一个子字符串,传入的参数是开始位置和长度为length的字符串;
slice()--提取字符串的一部分,返回新的字符串;
replace()--用来匹配查找一个正则表达式的字符串;
split()--将一个字符串按照传入参数分割成几个字符串,并存入数组中
length--返回字符串的长度,所谓的长度是包含字符的个数
toLowerCase()--字符串的长度转成小写
toUpperCase()--字符串的长度转成大写
var str1 = 'this is an apple';
var str2 = ' this is a pen';
var str3 = 'THIS IS AN APPLEPEN';
// 1、concat()方法
console.log(str1.concat(str2));//this is an apple this is a pen
// 2、indexOf()的方法
console.log(str1.indexOf('i'));//2---第一次出现i的位置
// 3、charAt()
console.log(str1.charAt(3));//s--返回在3位置处的字符
//4、lastIndexOf()
console.log(str1.lastIndexOf('p'));//13---若不传参,则返回-1;否则返回左后一次出现参数的位置
// 5、match()
var reg = /[t|i]/ig;
console.log(str1.match(reg));//[ 't', 'i', 'i' ]--如果返回null,说明没有符合正则的字符;
// 6、substr()
console.log(str1.substr(2,6));//is is 返回在2位置到6位置处的字符串,包含空格
// 7、slice()
console.log(str1.slice(2,6));//is i 返回在2--6位置之间的字符,含头不含尾
//8、substring()
console.log(str1.substring(2,6));//is i 返回在2--6位置之间的字符,含头不含尾
// 9、split()
console.log(str1.split(' '));//[ 'this', 'is', 'an', 'apple' ]将字符串按照参数的形式划分成子字符串,返回到数组中
//10、length()
console.log(str2.length);//14
// 11、toLowerCase()
console.log(str3.toLowerCase());//this is an applepen
// 12、toUpperCase()
console.log(str1.toUpperCase());//THIS IS AN APPLE
怎样添加、创建、移动、复制、查找节点
1、创建节点
createDocumentFragment()---创建文档片段
createElement()--创建一个具体的元素
createTextNode()--创建文本节点
2、添加、移除、替换、插入
appendChild()//添加
removeChild()//移除
replaceChild()//替换
insertBefore()//插入
3、查找
getElementById()--根据id属性查找DOM元素
getElementByName()--根据name属性查找DOM元素
getElementByTagName()--根据标签名查找DOM属性
写出3个使用this的典型应用
// 1、this在HTML中的应用
<input type="button" onclick="showInfo(this)" value="点击一下">
// this--指的是该元素
// 2、构造函数使用
function userThis (name,color){
this.name = name;
this.color = color;
}
//事件发生时
var btn = document.getElementById('button');
btn.click(function () {
alert(this.value)
});
//在apply()/call()求数组中的最值
var numbers = [5,24,64,332,568,97];
var maxNumbers = Math.max.apply(this,numbers);
console.log(maxNumbers);//568
maxNumbers = Math.max.call(this,5,24,64,332,568,97);
console.log(maxNumbers);
比较typeof与instanceof?
相同点:JavaScript 中 typeof 和instanceof 常用来判断一个,变量是否为空,或者是什么类型的
typeof的定义和用法:返回值是一个字符串,用来说明变量的数据类型
返回值:
①:typeof 一般只能返回如下几个结果:number,boolean,string,function,object,undefined
②:typeof:来获取一个变量是否存在,如 if(typeof a!="undefined"){alert("ok")},而不要去使用 if(a) 因为如果 a 不存在(未声明)则会出错。
③对于Array,Null等特殊对象使用typeof一律返回object,这是该函数的局限性
instanceof定义和用法:instanceof 用于判断一个变量是否属于某个对象的实例
var a = 'this is a charCode';
console.log(typeof a);//string
var b = 0;
console.log(typeof b);//number
var c = true;
console.log(typeof c);//boolean
var d = undefined;
console.log(typeof d);//undefined
var e = [1,2,3,3];
console.log(typeof e);//object
var f = function(){
alert('this');
};
console.log(typeof f);//function
var g = {};
g.name = 'jack';
console.log(typeof g);//object
var h = null;
console.log(typeof h);//object console.log(a instanceof Object)//false
console.log(g instanceof Array)//false
console.log(e instanceof Array)//true
console.log(e instanceof Object)//true
数组也属于对象,数组是Object的子类
前端面试题整理---JS基础的更多相关文章
- 前端面试题整理——Javascript基础
常见值类型: let a; //undefined let s = 'abc'; let n = 100; let b = true; let sb = Symbol('s'); let nn = N ...
- 好程序员分享Web前端面试题汇总JS篇之跨域问题
为什么80%的码农都做不了架构师?>>> 好程序员分享Web前端面试题汇总JS篇之跨域问题,接着上一篇文章我们继续来探讨web前端面试必备面试题. 跨域解决方案 1. 通过jso ...
- 各大互联网公司前端面试题(js)
对于巩固复习js更是大有裨益. 初级Javascript: 1.JavaScript是一门什么样的语言,它有哪些特点? 没有标准答案. 2.JavaScript的数据类型都有什么? 基本数据类型 ...
- 【web前端面试题整理02】前端面试题第二弹袭来,接招!
前言 今天本来准备先了解下node.js的,但是,看看我们一个小时前与一个小时后的差距: 既然如此,我们继续来搜集我们的前端面试题大业吧!!! 特别感谢玉面小肥鱼提供哟,@玉面小飞鱼 题目一览 Jav ...
- 【web前端面试题整理06】成都第一弹,邂逅聚美优品
前言 上周四回了成都,休息了一下下,工作问题还是需要解决的,于是今天去面试了一下,现在面试回来了,我感觉还是可以整理一下心得. 这个面试题整理系列是为了以后前端方面的兄弟面试时候可以得到一点点帮助,因 ...
- 前端面试题整理(js)
1.HTTP协议的状态消息都有哪些? HTTP状态码是什么: Web服务器用来告诉客户端,发生了什么事. 状态码分类: 1**:信息提示.请求收到,继续处理2**:成功.操作成功收到,分析.接受3** ...
- 【web前端面试题整理08】说说最近几次面试(水)
为什么换工作 换工作简单来讲一般会归纳为钱不够或者人不对,我们团队氛围很不错,所以基本就定位到钱不够了,而我更多是考虑到以后的职业发展,简单说来就是对以后几年的工作有想法,而这种想法实现不一定能在现在 ...
- 2019届校招前端面试题整理——HTML、CSS篇
前言 2019届校招陆陆续续开始了,整理了一些高频的面试题. HTML部分 1. 什么是<!DOCTYPE>? DOCTYPE是html5标准网页声明,且必须声明在HTML文档的第一行.来 ...
- 前端面试题之js篇
前端面试也可为是鱼龙混杂,各公司面试题的种类也大不相同,有的公司注重基础语法,面试题偏于ES,有的公司偏于页面逻辑,会考差一些js的应用,现将遇到过的题和典型的题整理一下. 1. 0.2-0.1 == ...
随机推荐
- ubuntu删除文件夹
-r表示强制删除,-f表示不提示 强制删除文件夹并提示 sudo rm -r 文件夹名 强制删除文件夹不提示 (最暴力) sudo rm -rf 文件夹名
- Java拓展教程:文件DES加解密
Java拓展教程:文件加解密 Java中的加密解密技术 加密技术根据一般可以分为对称加密技术和非对称加密技术.对称加密技术属于传统的加密技术,它的加密和解密的密钥是相同的,它的优点是:运算速度快,加密 ...
- 登录令牌 Token 介绍
Token值介绍 token 值: 登录令牌.利用 token 值来判断用户的登录状态.类似于 MD5 加密之后的长字符串. 用户登录成功之后,在后端(服务器端)会根据用户信息生成一个唯一的值.这个 ...
- node+express上传图片到七牛
本人微信公众号:前端修炼之路,欢迎关注 最近做项目的时候有一个上传图片的需求,由于没有后端的配合,所以决定自己来搭个服务器,实现上传图片功能.以后如果需要修改成java或者php为后端,直接使用即可, ...
- interceptors
<mvc:interceptors> <mvc:interceptor> <mvc:mapping path="/**"/> <bean ...
- BZOJ(begin) 1328 [Usaco2003 Open]Jumping Cows:贪心【波峰波谷模型】
题目链接:http://begin.lydsy.com/JudgeOnline/problem.php?id=1328 题意: 给你一个长度为n的正整数序列. 可以选任意个数字,只能从左往右选. 偶数 ...
- 分享知识-快乐自己:Mybatis缓存机制
论缓存机制: 1):mybatis 提供了缓存机制减轻数据库压力,提高数据库性能. 2):mybatis 的缓存分为两级:一级缓存.二级缓存 3):一级缓存是SqlSession级别的缓存,缓存的数据 ...
- Multiple webcams on ZoneMinder
Monitoring a 3D Printer I have tidied my new workshop and I am starting to play with 3d-printing aga ...
- Spring 配置 详细
一.连接池概述 数据库连接池概述: 数据库连接是一种关键的有限的昂贵的资源,这一点在多用户的网页应用程序中体现得尤为突出.对数据库连接的管理能显著影响到整个应用程序的伸缩性和健壮性,影响到程序的性能指 ...
- AtCoder Grand Contest 009 E:Eternal Average
题目传送门:https://agc009.contest.atcoder.jp/tasks/agc009_e 题目翻译 纸上写了\(N\)个\(1\)和\(M\)个\(0\),你每次可以选择\(k\) ...