前端小知识-js

时间:2024-04-17 08:18:49

一、对象冒充

function student(name,age){
		this.name = name;
		this.age = age;
		this.show = function(){
			console.log("name:"+name,"age:"+age);
		}
	}
	function teacher(name,age){
		this.teacher = student;
		this.teacher(name,age);
		delete this.teacher;
	}
	var ss = new teacher("xiaoming",22);
	ss.show();
	var dd = new student("xiaolan",20);
	dd.show();

  

二、判断当天是星期几

function getMyDay(date){
    var week;
    if(date.getDay()==0) week="周日";
    if(date.getDay()==1) week="周一";
    if(date.getDay()==2) week="周二";
    if(date.getDay()==3) week="周三";
    if(date.getDay()==4) week="周四";
    if(date.getDay()==5) week="周五";
    if(date.getDay()==6) week="周六";
    return week;
}
var w1 = getMyDay(new Date("2015-7-12"));

四、判断当前日期为当月第几周

//判断当前日期为当月第几周
 var getMonthWeek = function (a, b, c) {
     //a = d = 当前日期
     //b = 6 - w = 当前周的还有几天过完(不算今天)
     //a + b 的和在除以7 就是当天是当前月份的第几周
     var date = new Date(a, parseInt(b) - 1, c), w = date.getDay(), d = date.getDate();
     return Math.ceil((d + 6 - w) / 7);
 };

  

五、http请求带有多个参数的写法

CTSI.openWindow({width:500, height:430}, '编辑管理员', '/mts/user/ispLoginUserAdd.as?type=edit&id='+id+'&roleTypePwd='+roleType, null);

  追加:如何获取url中“?”符号后的字符串

function GetRequest() {
            var url = location.search; //获取url中"?"符后的字串
            var theRequest = new Object();
            if (url.indexOf("?") != -1) {
                var str = url.substr(1);
                strs = str.split("&");
                for(var i = 0; i < strs.length; i ++) {
                    theRequest[strs[i].split("=")[0]] = unescape(strs[i].split("=")[1]);
                }
            }
            return theRequest;
        }
        var urlData = GetRequest();

 

六、判断浏览器的版本

var  _uat = navigator.userAgent;
_uat.indexOf("MSIE 9.0")>0
_uat.indexOf("Firefox")>0

 if((navigator.appName == "Microsoft Internet Explorer" && navigator.appVersion .split(";")[1].replace(/[ ]/g,"")=="MSIE6.0" || navigator.appName == "Microsoft Internet Explorer" && navigator.appVersion .split(";")[1].replace(/[ ]/g,"")=="MSIE7.0" || navigator.appName == "Microsoft Internet Explorer" && navigator.appVersion .split(";")[1].replace(/[ ]/g,"")=="MSIE8.0" || navigator.appName == "Microsoft Internet Explorer" && navigator.appVersion .split(";")[1].replace(/[ ]/g,"")=="MSIE9.0" )|| (_uat.indexOf("Firefox")<0) || (_uat.indexOf("Chrome")<0))
    {
    alert("您的浏览器版本过低,请下载IE9以上版本");
    }

  

七、js处理字符串常用的方法

函数:split()
功能:使用一个指定的分隔符把一个字符串分割存储到数组
例子:
str=”jpg|bmp|gif|ico|png”;
arr=theString.split(”|”);
//arr是一个包含字符值”jpg”、”bmp”、”gif”、”ico”和”png”的数组

函数:Join()

功能:使用您选择的分隔符将一个数组合并为一个字符串
函数:substring()
功能:字符串截取,比如想从"MinidxSearchEngine”中得到"Minidx”就要用到substring(0,6)

函数:indexOf()

功能:返回字符串中匹配子串的第一个字符的下标
1.substring 方法

定义和用法
substring 方法用于提取字符串中介于两个指定下标之间的字符。

语法
stringObject.substring(start,stop)

参数 描述
start 必需。一个非负的整数,规定要提取的子串的第一个字符在 stringObject 中的位置。
stop 可选。一个非负的整数,比要提取的子串的最后一个字符在 stringObject 中的位置多 1。如果省略该参数,那么返回的子串会一直到字符串的结尾。

返回值
一个新的字符串,该字符串值包含 stringObject 的一个子字符串,其内容是从 start 处到 stop-1 处的所有字符,其长度为 stop 减 start。

说明
substring 方法返回的子串包括 start 处的字符,但不包括 end 处的字符。
如果 start 与 end 相等,那么该方法返回的就是一个空串(即长度为 0 的字符串)。
如果 start 比 end 大,那么该方法在提取子串之前会先交换这两个参数。
如果 start 或 end 为负数,那么它将被替换为 0。

2.substr 方法

定义和用法
substr 方法用于返回一个从指定位置开始的指定长度的子字符串。

语法
stringObject.substr(start [, length ])

参数 描述
start 必需。所需的子字符串的起始位置。字符串中的第一个字符的索引为 0。
length 可选。在返回的子字符串中应包括的字符个数。

说明
如果 length 为 0 或负数,将返回一个空字符串。

如果没有指定该参数,则子字符串将延续到stringObject的最后。
八、数据取整
向上取整 Math.ceil(7/2)
向下取整  Math.floor(7/2)
四色五入 Math.round(7/2)
九、json.parse与json.stringify的区别
json.parse(str);
是将字符串转化成对象
比如:
var str  = '{"name":"cuihui","age":"20"}'  注:单引号放在{}外面,里面的属性用双引号括起来
JSON.parse(str);
解析后的结果:
object
name:"cuihui"
age:"20"
_proto_:Object
JSON.stringify()
是将对象转换成字符串
比如:
var a = {a:1,b:2}
结果:
JSON.stringify(a)
"{"a":1,"b":2}"
十、  /*事件冒泡*/
     function stopPropagation(e){
     if(e.stopPropagation){
         e.stopPropagation(); 
     }
     else{
          e.cancelBubble = true;
     }
}
$(document).bind('click',function(){
})
十、H5页面在安卓手机上出现页面下部分被顶上去的问题
1.var wHeight = window.innerHeight;   //获取初始可视窗口高度 
   window.addEventListener('resize', function(){       //监测窗口大小的变化事件 
   var hh = window.innerHeight;     //当前可视窗口高度 
   var viewTop = $(window).scrollTop();   //可视窗口高度顶部距离网页顶部的距离 
  if(wHeight > hh){           //可以作为虚拟键盘弹出事件 
        $(".content").animate({scrollTop:viewTop+100});    //调整可视页面的位置 
    }else{         //可以作为虚拟键盘关闭事件 
        $("content").animate({scrollTop:viewTop-100}); 
    } 
    wHeight = hh; 
}); 
2.改变页面下部分分的样式css:z-index:-1;
十一、js地图接口
<script src="url"></script>
<script>
    var map = new BMap.Map("allmap");  //创建Map实例
     map.centerAndZoom(new BMap.Point(     ,      ),  );//初始化地图,设置中心点坐标和地图级别
     map.addControl(new BMap.MapTypeControl());//添加地图类型控件
     map.setCurrentCity("北京");//设置地图显示的城市 此项是必须设置的
     map.enableScrollWheelZoom(true);//开启鼠标轮滚缩放
</script>
十二、请求url编码
前端小知识-js
十三、对象数组去重
var hash = {};
activeJsonData = activeJsonData.reduce(function(item, next) {
    hash[next.key] ? '' : hash[next.key] = true && item.push(next);
    return item
}, []);

  

十四、load和domcontentloaded事件区别

load事件是window对象上的事件。指的是网页资源已经加载完毕(包括但不限于DOM、图片、音频、脚本、插件资源以及css)
DOMContentLoaded事件是document对象上的事件。指的是DOM已经加载完毕。IE中有一个私有的事件onreadystatechange事件跟这个标准事件类似。
DOMContentLoaded事件都会比load事件提前触发
十五、DOM文档加载的步骤为
(1)、解析HTML结构
(2)、加载外部脚本和样式表文件
(3)、解析并执行脚本代码
(4)、DOM树构建完成   //此步就是DOMContentLoaded
(5)、加载图片等外部文件
(6)、页面加载完毕 //load
十六、
1.四舍五入
Math.round(a/b);
2.时间类型的转化
var timeDate ="2017-05-02";
var newStr = timeDate.replace(/-/g,'/');  //将2017-05-02转换成2017/05/02
var newDate = new Date(newStr) ;  //将字符串的时间转换成日期型的时间
var getYear = newDate.getFullYear(); // 获取年份
var getMonth = newDate.getMonth()+1; //获取月份
var getDate = newDate.getDate(); //获取日期
var getHours = newDate.getHours();//获取小时
var getMinutes = newDate.getMinutes(); //获取分钟
var getSeconds = newDate.getSeconds(); //获取秒
var getMilliseconds = newDate.getMilliseconds(); // 获取毫秒
var getTime = newDate.getTime(); //获取时间戳
3.倒计时
setInterval("倒计时的方法",时间间隔);
4.日期的下一天
var nextDay = new Date((curDate/1000+86400)*1000);
5.日期格式的转变
var str = 'Mon May 16 2016 18:48:34 GMT+0800 (中国标准时间)';
str = str.replace(/ GMT.+$/, '');
 十七、便捷改变对象的字段名称
var newObj = Json.parse(Json.stringify(obj).replace(/address/g,"mapDesc");
//obj --要改变的对象
//address --字段的旧名称
//mapDesc ---新的字段名
十八、js截取字符串最后一位
var str = "hello world";
str = str.substr(0,str.length-1);