JS笔记

继承
一圣杯模式:

  1. Father.prototype.lastName=“laodeng”
    function Father(){

    		}
    		function Son(){
    			
    		}
             function inherit(Target,Origin){
    			 function F(){}
    			 F.prototype = Origin.prototype;
    			 Target.prototype = new F();
    			 Target.prototype.constructor=Target;
    			 Target.prototype.uber = Origin.prototype;
    		 }
    		 Son.prototype.sex="male";
    		inherit(Son,Father);
    	    son = new Son();
    		father = new Father();
    

2.(雅虎)
var inherit = (function(){
var F = function(){};
return function inherit(Target,Origin){
F.prototype = Origin.prototype;
Target.prototype = new F();
Target.prototype.constructor=Target;
Target.prototype.uber = Origin.prototype;
}
}());

//Son的改变不会改变Father
二、
var Deng = {
drink : function(){
console.log(“hejiu”);
return this;
},
prim: function(){
console.log(“tangtou”);
return this;
},

			    smoke: function(){
					console.log("smoking");
					return this
				},
				}
				Deng.drink().prim().smoke();

类似于jq连续调用
三 对象的引用
var a = {name:“abs”,}
a. name就等于 a[‘name’]
实例:var deng = {
wife1:{name:“wang”},
wife2:{name:“liu”},
wife3:{name:“zhang”},
Call:function(num){
return this[‘wife’+num]
}
}
Deng.Call(1);
四、遍历对象
var deng = {
name: “laowang”,
age:1,
wife:“xiaoliu”
}
for(var i in deng){
console.log(deng[i]);
}
/* for(var i in deng){
console.log(deng[‘i’]);//—>underfine
//把deng.i中的i认为是对象中属性,但属性中中没有i属性
} /

in hasOwnProperty instanceof
var deng = {
name: “laowang”,
age:1,
wife:“xiaoliu”,
proto:{
lastName:“laowang”
}
}
1. for(var i in deng){
if(deng.hasOwnProperty(i))
{
console.log(deng[i]);
}
}
输出:laodeng
1
xiaoliu
laowang

2.
for(var i in deng){
console.log(deng[i]);
}
输出:laodeng
1
xiaoliu
3. A instanceof B
A的原型链上有没有B的原型
例如: obj={
}
var a=new obj();
返回 true;
六 typeof返回值类型
boolean
number
string
underfined
object
function
七 五大原始值
Number、Stirng、Boolean、Null、Underfined

UnderfinedNull
但是 Underfined
=Null 不成立
isNaN(“100”)返回true —>括号里面的内容先Number(“num”)
parseInt(“1a”) 返回1
parseInt(“a”) 返回NaN;
parseInt(2,8)------->2是一个八进制数
九 callee 返回函数本身
var num = (function(i){
if(i==1)
{
return 1;
}
return i
arguments.callee(i-1);
}(10))
十 caller 返回谁调用的此函数
function test(){
deom();
}
function deom(){
console.log(deom.caller);
}
test();
输出:
在这里插入图片描述
十一 数组的方法
//改变原数组
arr.push(1)//从数组后面添加元素
arr.pop()//从后面弹出一个元素
arr.unshift(0)//从前面增加一个元素
arr.shift()//从前面删除一个元素
arr.reverse()//数组逆置
arr.splice(从第几位开始,多少个元素,需要增加的元素)//第三位可不写
arr.sort(function(a, b){
return b-a;
});//逆序
arr.sort(function(a, b){
return a-b;
});//正序
arr.sort(function(){
return Math.random()-0.5;
});//乱序
。。。。。。。。。。。。。。。。。。。。。
将对象按年龄升序
var deng = {
name:deng,
age:40,
}
var liu={
name:liu,
age:30,
}
var shi={
name:shi,
age:19
}
var arr=[deng,shi,liu];
arr.sort(function(a,b){
return a.age-b.age;
})
改变原数组
str.slice(开始截取的位置,截取的长度)//需要有变量接受返回值,如果只有一
arr.join(‘符号’)位,则一直截取到最后
arr.split(‘按这个符号截取’)
十二 cesium一个字符串的字节数
function retBt(str){
var num = str.length;
for(var i=0;i<str.length;i++){
if(str.charCodeAt(i)>255)
num++;
}
return num;
}
str=‘ni好’;
retBt(str);
十三 数组去重
Array.prototype.unique = function (){
var temp = {},
arr = [],
len = this.length;
for(var i = 0;i < len;i++){
if(!temp[this[i]]){
temp[this[i]] = “abc”;
arr.push(this[i]);
}
}
return arr;
}
var arr=[1,2,3,3,2,4,1];//数组去重
十四 预编译的环节
预编译:
1.生成AO
2.将形参名当作对象的属性名
3.实参形参相统一
4.将function提升

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值