发布网友 发布时间:2022-05-02 02:05
共4个回答
懂视网 时间:2022-04-20 12:18
首先先介绍如下的几种方法:字符串方法:
str.length str.charAt(i):取字符串中的某一个;
str.indexOf('e');找第一个出现的位置;找不到返回-1;
str.lastIndexOf('e'):找最后一个e出现的位置;找不到返回-1;
str.toUpperCase();转大写 str.toLowerCase();转小写 str.substring(起始位置,结束位置):字符串截取; str.split('切割的方式');字符串切割;字符串转数组;
数组方法:
删除:arr.splice(开始位置,删除的个数); 添加:arr.splice(开始的位置[往哪一位的前面添加],0,元素1····); 替换:arr.splice(开始位置,删除的个数,元素1···); arr.sort(function(n1,n2){return n1 - n2}):排序 arr.reverse():翻转 arr.push();往数组后面添加一位; arr.unshift():往数组前面添加一位; arr.pop():从数组的后面删除一位; arr.shift():从数组的前面删除一位; arr.join('连接的方式');数组转字符串的方法; arr.concat(arr1,arr2····);数组连接;
数学方法:
Math.random();随机数; Math.round():四舍五入; Math.ceil()向上取整; Math.floor()向下取整; Math.abs():取绝对值; Math.max(x,y):求最大数; Math.min(x,y);求最小数; Math.pow(x,y):几的几次方; Math.sqrt():开平方;
数组:存多个东西; json:存多个东西; json = { //键值对 name1[键,key]:value1[值,value], name2[键,key]:value2[值,value], }
json 与 arr 的区别:
1:length undefined arr.length;
2:下标 属性的方式 arr[0];
3:顺序 没有顺序 有顺序;
4:循环 for in for,while,for in
for in循环也可以循环数组,但是不建议使用,因为性能略低;
js小特性: 逗号表达式:只看最后一个逗号后面的那个值;
下面是一个通过class获取元素封装的小函数:
//getByClass(oParent,sClass);//oParent:从哪个父级下面获取;sClass:要获取的是哪个class名字; function getByClass(oParent,sClass){ if(oParent.getElementsByClassName){ return oParent.getElementsByClassName(sClass); }else{ var aEle = oParent.getElementsByTagName('*'); var arr = []; for(var i = 0; i < aEle.length; i++){ var tmp = aEle[i].className.split(' '); if(findInArr(sClass,tmp) == true){ arr.push(aEle[i]); } } return arr; } }
下面再来几个小案例:
1. 本月一共有多少天
<script> var oDate=new Date(); oDate.setMonth(oDate.getMonth()+1); oDate.setDate(0); alert(oDate.getDate()) </script>
2. 本月第一天是星期几
<script> var oDate=new Date(); oDate.setDate(1); alert(oDate.getDay()); </script>
3. 九九乘法表
<script> document.write('<table>'); for(var i = 1; i <= 9; i++){ document.write('<tr>'); for(var j = 1; j <= i; j++){ document.write('<td>'+i+'*'+j+'='+i*j+'</td>'); } document.write('</tr>'); } document.write('</table>'); </script>
4. json转换成字符串
<script> var json={a:12,b:5,c:9,d:6}; var arr=[]; for(var name in json){ arr.push(name+'='+json[name]) }; //alert(arr); var str=arr.join('&'); alert(str); </script>
【相关推荐】
1. 免费js在线视频教程
2. JavaScript中文参考手册
3. php.cn独孤九贱(3)-JavaScript视频教程
热心网友 时间:2022-04-20 09:26
先给你介绍下JS常用的几种模式
热心网友 时间:2022-04-20 10:44
虽然Object构造函数或对象字面量都可以创建单个对象,但是这些方式有个明显的缺点:使用同一个接口创建很多对象,会产生大量重复的代码。为了解决这个问题,就可以使用工厂模式来创建对象。热心网友 时间:2022-04-20 12:19
1、工厂模式
在ECMAScript中是无法创建类的,开发人员就发明了一种函数,用函数来封装特定接口创建对象的细节:
function createPerson(name, age, job) {
var o = new Object();
o.name = name;
o.age = age;
o.job = job;
sayName = function () {
alert(this.name);
};
return o;
}
var person1 = createPerson('zxj', 23, "Software Engineer");
var person2 = createPerson('sdf', 25, "Software Engineer");
在示例中我们可以看到,工厂模式虽然解决了创建多个相似对象的问题,但没有解决对象识别的问题(在示例中,得到的都是o对象,对象的类型都是Object)。
2、构造函数模式
我们知道,ECMAScript中的构造函数可以用来创建特定类型的对象。像Object和Array的原生的构造函数,在运行时会自动出现在执行环境中。此外,也可以创建自定义的构造函数,从而定义自定义对象类型的属性和方法。代码如下所示:
function createPerson(name, age, job) {
this.name = name;
this.age = age;
this.job = job;
sayName = function () {
alert(this.name);
};
}
var person1 = new Person('zxj', 23, "Software Engineer");
var person2 = new Person('sdf', 25, "Software Engineer");
在这个例子中,Person()函数取代了createPerson()函数。我们注意到, Person()中的代码除了和createPerson()中相同的部分外,还存在以下不同之处:
没有显式的创建对象;
直接将属性和方法赋给了this对象;
没有return语句;
此外,函数名Person使用的是大写字母P。按照惯例,构造函数始终都应该以一个大写字母开头,而非构造函数应该以一个小写字母开头。主要为了区别与ECMAScrit中的其他函数;因为构造函数本身也是函数,只不过可以用来创建对象。
要创建Person对象的新势力,必须使用new操作符。以这种方式调用构造函数实际上会经历以下4个步骤:
创建一个新对象;
将构造函数的作用域赋给新对象(因此this就指向这个新对象);
执行构造函数中的代码(为这个新对象添加属性和方法);
返回新对象;