js高级

本文深入讲解JavaScript面向对象编程,涵盖JS的基本概念、面向对象特性、真值判断、对象操作及原型等核心知识点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 js认识

1.1 什么是js

js是基于对象事件驱动编程前端语言,可以用来改进设计,它是脚本语言,无需编译,直接放到浏览器解析运行

2 js面向对象

2.1 一切皆对象

java对象:某一个事物的具体的实例
js对象:在js中我们可以把任何(基本数据)类型当成对象来使用,包括基本类型,引用类型,函数

//基本类型
var num = 11.11
console.log(typeof num)//number
console.log(num.toFixed(1))//11.1
//引用类型
var num = new Number(12.345)
console.log(typeof num)//object
console.log(num.toFixed(1))//12.3

2.2 js中true和false的判断

当成一个boolean类型

var flag = false
if(flag){
	console.log('皮皮怪被打了')
}

js 中所有值的真假性: 0,"",undefined,NaN,null,false(基本数据类型的false)为false,其他值都为true

var flag1 = new Boolean(false)
if(flag1){
	console.log('皮皮怪又被打了')
}

2.3 js简单操作

2.3.1三部曲

创建对象
给对象添加属性和方法
操作对象的属性和方法

2.3.2 删除属性
delete obj.name;
delete obj["age"];
2.3.3 迭代/遍历对象成员
for(var p in obj){
     console.debug(p);//p为对象的属性名或者函数名字。
    //要调用,需要动态调用,把p当做一个动态的变量,使用[]方式
	if (typeof jsonObj[p] == 'function') {
		jsonObj[p]();//函数的调用需要有()
	} else {
		console.debug(jsonObj[p]);
	}
 }

2.4 js的其他内容

hasOwnProperty 判断对象里面是否有属性
函数name它是只读属性 --避免出现笔试题
window里面默认有name 默认值空字符串
this表示当前对象 可以通过apply和call方法去改变this的执向

3 prototype原型

每个类有原型的属性 prototype,通过该属性给类添加属性和方法

User.prototype.eat = function(){
	console.log('皮皮虾');
}

每个类的实例原型的属性是共享的–)如果一个类的在原型的属性上面添加方法和字段,当前类的其他的实例共享的

user1.__proto__.sex = 'man';

每个类属性的查找,先从自定义的属性上面找,如果没有,在从原型上面找

4 回调函数和匿名函数

回调函数:等待一段时间有回来执行函数

​ 比如 setTimeout ajax回调

匿名函数:没有名称的函数

写法:

(function(){})()

4.1 用途:

  1. 如果执行一次 可以使用匿名函数
  2. 作为参数来传递使用
  3. 解决作用域污染问题

5 闭包

闭包:函数内使用函数外的变量
闭包使用场景:

  1. 实现一个只读的属性 --结合匿名函数实现只读
(function(){
	var a = 0;
		window.getSum=function(){
			return a++;
		}
})();

console.log(getSum());
console.log(getSum());
a = 10;//window.a
console.log(getSum());
console.log(getSum());
console.log(getSum());
  1. 函数里面使用函数外变量

6 jquery事件委托

$("#userForm").on('click','a.delete',function(){
				alert('111111111111');
})

7 jquery继承

$.fn.setHtml = function(content){
	this -->dom 或者jquery
	//设值
	$(this).html(content);
};
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值