面试准备(1)

面试准备(1)

编写一个JavaScript函数,输入指定类型的选择器(仅需支持id,class,tagName三种简单CSS选择器,无需兼容组合选择器)可以返回匹配的DOM节点

function getStyle(str){
	var s = str.charAt(0);
	var ss = str.substr(1);
	switch(s){
		case '#':
			return document.getElementById(ss);
			break;
		case '.':
			if(document.getElementsByClassName)
			{
				return document.getElementsByClassName(ss);
				break;
			}
			else
			{
				var arr = [];
				var dom = document.getElementsByTagName('*');
				for(var i = 0; i < dom.length; i++)
				{
					var classArr = dom.className.split(" ");
					for(var j = 0; j < classArr.length; j++ )
					{
						if(classArr[j] == ss)
						{
							arr.push(dom[i]);
							break;
						}
					}
				}
				return arr;
			}
		default:
			return document.getElementsByTagName(str);			
	}
}

克隆一个对象

function clone(obj){
	var buf;
	// 数组
	if(obj instanceof Array){
		buf = [];
		for(var i = 0; i < obj.length; i++)
		{
			buf[i] = clone(obj[i]);
		}
	}
	//对象
	else if(obj instanceof Object){
		buf = {};
		for(var k in obj)
		{
			buf[k] = clone(obj[k]);
		}
	}
	// 普通变量直接赋值
	else{
		buf = obj;
	}
	return buf;
}

小数精确度 0.1+0.2

function add(num1,num2){
	let r1,r2,m;
	r1 = (num1+'').split('.')[1].length;
	r2 = (num2+'').split('.')[1].length;
	m = Math.pow(10,Math.max(r1,r2));
	return (num1 * m + num2 * m) / m;
}

数组排序

function sort(arr){
	var sortArr = arr.sort(function(a,b){
		return a - b;
	})
	//倒排
	var sortArr = arr.sort(function(a,b){
		return b - a;
	})
}

生成[x,y]范围的随机整数
Math.random()产生随机数的范围从0-1;

function Random(min,max){
	return Math.random()*(max-min)+min;
}

parseInt parseFloat

  1. parseFloat() 所解析的字符串中第一个小数点是有效的,而parseInt() 遇到小数点会停止解析,因为小数点并不是有效的数字字符。
  2. parseFloat() 始终会忽略前导的零,十六进制格式的字符串始终会被转换成0,而parseInt() 第二个参数可以设置基数,按照这个基数的进制来转换
  3. 如果第一个字符不是数字或者负号,parseInt() /parseFloat()就会返回NaN,同样的,用parseInt() 转换空字符串也会返回NaN。如果parseInt的是16进制则不会。

立即执行函数(IIFE)

(function(win){
	var itcast = {
		getEle:function(){
			console.log("沙箱模式")
		}
	}
	//如果需要在外界暴露一些属性或者方法,就可以将这些属性和方法
    //加到window全局对象上去
   	//但是这window全局对象不可以直接引用,因为直接引用会破坏沙箱原则
    //所以我们选择使用传参的形式将 window对象 传入沙箱内
    //此时沙箱内使用window对象的时候,不会再去全局搜索window对象
    //而使用的就是沙箱内部定义的形参
	win.itcast = win.$ = itcast;
})(window);

关键字

  1. with 将代码的作用域设置到一个特定的作用域中
  2. void 返回值为空
  3. class
  4. parent
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值