1、JavaScript中如和检测有关变量是String类型,写出函数实现。

①利用typeof()方法检测。

function(str) {
return typeof(str) === “string” ? true : false;
}

②利用constructor属性检测。

function(str) {
return str.constructor === String ? true : false;
}

//如果变量是undefined的话会报错。

③利用原型上的toString方法检测。

function(str) {
return Object.prototype.toString.call(str) === ‘[object String]’ ? true : false;
}

2、请用js去除字符串中的空格?

①利用正则表达式对象。

function(str) {
return this.isString(str) ? str.replace(/\s*/g, ”) : alert(‘输入有误’);//先判断传入的变量是不是字符串类型的 在进行去空格操作。
}

②利用正则表达式对象,去除字符串两端的空格。

function(str) {
return this.isStringThree(str) ? str.replace(/^\s*|\s*$/g, ”) : alert(‘输入有误’);//先判断传入的变量是不是字符串类型的 在进行去空格操作。
}

③利用jquery对象,去除字符串两端的空格。

function(str) {
return this.isString(str) ? $.trim(str) : alert(‘输入有误’);//先判断传入的变量是不是字符串类型的 在进行去空格操作。
}

④利用包装类对象上的trim()方法,去除字符串两端的空格。

function(str) {
return this.isString(str) ? str.trim() : alert(‘输入有误’);
}

3、如何获取浏览器URL中查询字符串中的参数?

①具体方法如下

function() {
var href = window.location.href.split(‘?’),//用bom对象获取当前页面的地址 类型为字符串,再用包装类对象中的split()方法进行分离查询字符串和地址。
str,
result = {},//提前准备好容器。
i = 0;
if(href[0] === window.location.href) {
alert(‘没有参数’);//判断是否有查询字符串 如果没有 href数组里的第一个字符串和原地址相同。
return;//结束函数。
}
str = href[1].split(‘&’);//获取查询字符串。
for(; i < str.length; i++) {
var arg = str[i].split(‘=’);//键/值分离。
result[arg[0]] = arg[1];//赋值给容器。
}
return result;//返回结果。
}

4、利用this写出3个典型的应用?

①html元素事件属性中使用。

<input type=”button” name=”” id=”” value=”xxxxx” onclick=”showinfo(this)” />//传入元素对象。

function showinfo(x) {
alert(x.value);//显示元素对象属性value的值。
}

②在构造函数中使用。

function(name, color) {  
this.name = name;  
this.color = color;
return this;
}

③求数组最大值中使用。

var numbers = [5, 458 , 120 , -215 ];


var maxInNumbers = Math.max.apply(this, numbers);


console.log(maxInNumbers);
// 458

var maxInNumbers = Math.max.call(this,5, 458 , 120 , -215);

console.log(maxInNumbers); // 458

5、js字符串常用的方法有哪些?

  • concat() – 包装类对象方法。把当前字符串与参数里的字符串进行组合 返回一个新的字符串。//’ssss’.concat(‘aaaa’,’sss’) return ‘ssssaaaasss’;

  • indexOf() – 传入一个字符串,返回与该字符串匹配的子串的第一个位置索引,如果没有匹配项,返回 -1 。//’ssssa’.indexOf(‘a’) return 4 ;

  • charAt() – 返回指定位置的字符。传入一个索引位置参数,返回该位置的字符。

  • lastIndexOf() –传入一个字符串,返回与该字符串匹配的子串的最后一个位置索引,如果没有匹配项,返回 -1 。

  • match() –检查一个字符串是否匹配一个正则表达式。返回匹配到的值的数组 没有匹配的则返回null

  • substr() 返回从string的startPos位置,长度为length的字符串// ‘sabsns’.substr(2,3); “bsn”

  • substring() – 返回字符串的一个子串。传入参数是起始位置和结束位置。//’sabsns’.substring(2,3); “s” 不包括第2位那个数。

  • slice() – 两个参数 一个是数组的开始位 一个是结束位 这方法是数组用的,返回的也是数组,注意不是包装类的对象方法。

  • replace() – 用来查找匹配一个正则表达式的字符串,然后使用新字符串代替匹配的字符串。

  • search() – 执行一个正则表达式匹配查找。如果查找成功,返回字符串中匹配的索引值。否则返回 -1 。

  • split() – 两个参数 一个是数组的开始位 一个是结束位 这方法是数组用的

  • length – 返回字符串的长度,所谓字符串的长度是指其包含的字符的个数。

  • toLowerCase() – 将整个字符串转成小写字母。

  • toUpperCase() – 将整个字符串转成大写字母。

6、dom节点的创建、移除、添加、查找、替换、插入?

①创建

document.createDocumentFragment();//创建文档片段,相当于一个容器,可以往里面添加dom元素节点,然后一起输出到html 进行渲染,从而减少渲染次数,增加性能。
document.createElement();
document.createTextNode();//创建文本节点 ,不常用。

②移除

dom对象.removeChild(dom对象);

function xx() {
var a = document.getElementsByClassName(‘ss’)[0];
document.getElementsByTagName(‘body’)[0].removeChild(a);//移除匹配的节点
return ‘移除成功’;
}

③添加

appendChild() 

④替换

       replaceChild() 

⑤插入 

 insertBefore()

⑥查找

document.getElementsByClassName();//类名属性查找
document.getElementsByName();//通过name属性进行查找
document.getElementsByTagName();//标签查找
document.getElementById();//id属性查找

7、 typeof 和 instanceof 有什么区别。

相同点: typeof 和 instanceof 常用来判断一个变量是否为空,或者是什么类型的。

不同点:

①typeof是一元运算符 instanceof是二元运算符

②typeof有局限性,对数组,null会判断为对象,instanceof则不会,

③instanceof是通过看它原型链上是否有该对象,

 

版权声明:本文为haapySi原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/haapySi/p/10885606.html