JS函数与对象和构造函数区别
JS中函数、对象、构造函数
1、函数
封装⼀段可以被重复利⽤的代码块
函数分为两步 声明函数 调⽤函数
1、function声明函数的关键字 全部⼩写
2、函数是做某件事,⼀般⽤动词
3、函数不调⽤⾃⼰不执⾏
实参个数和形参个数
相等正常输出
实参多于形参取前⼏个
实参⼩于形参 多于定义为undefined 输出NaN
函数的返回值
return 之后的内容不返回 并且多个return只返回最后⼀个 (注意:要返回多个内容可以⽤数组实现) 有return返回后⾯内容 没有返回undefined
arguments可以接受不确定的参数 具有length属性 只有函数才有arguments 每个函数都内置了arguments
函数的两种声明⽅式
1、命名函数
function getSum(num1,num2){
}
getSum(1,100)
2、函数表达式(匿名函数)
var 变量名 = function(){
}
var fun = function(aru){
console.log(aru)
}
fun('123'); 是变量名不是函数名
2、对象
对象是⼀个具体的事物 对象是属性和⽅法组成的
三种创建⽅法
1、字⾯量创建对象
var obj ={
username:'⼩⽶',
age:18,
sayHi:function(){ (⽅法:匿名函数)
console.log('hi~');
}
}
两种调⽤⽅法
console.log('obj.uname);
console.log('obj['age']);
obj,sayHi();
函数和⽅法的区别
函数独⽴存在 可以直接调⽤ 函数名()
⽅法需要 对象.⽅法()使⽤
2、⽤new Object()
var obj = new Objext();
obj.uname = '⼩⽶';
obj.age = 18;
obj.sex = '男';
obj.sayHi =function(){
console.log('hi~');
}
for(var 变量 in 对象 ){
}
变量得到的是属性名
遍历对象
3、⽤构造函数创建对象
把对象封装到函数中 利⽤函数⽅法重复相同代码把对象⾥⾯抽象出来 封装到⼀起 就是构造函数
⽤来初始化对象
1、构造函数⾸字母⼤写
2、不需要return 就能返回内容
3、需要使⽤new 创建对象
4、属性⽅法需要this
function 构造函数名(){
this.属性 = 值
this.⽅法 = function(){
}
}
function Star(uname,age,sex){
this.name = uname;
this.age = age;
this.sex = sex;
this.sing = function(sang){
console.log(sang);
}
}
var xiaomi = new Star('⼩⽶',18,'男')
console.log(xiaomi.name);
xiaomi.sing('冰⾬');
对象和构造函数区别
对象是具体内容 构造函数是抽象内容
可以通过构造函数实⼒出对象
函数和构造函数区别
函数就是函数 构造函数是对象Object
函数可以直接调⽤ 不需要this
构造函数必须new对象才能调⽤ 并且⼀定要写this new关键字执⾏过程
1、创建⼀个空对象
2、this指向这个空对象
3、执⾏构造函数代码 给空对象添加属性和⽅法
4、返回对象
数组
数组的创建⽅法
1、⽤new创建数组
var arr = new Array()
var arr1 = new Array(2); 创建⼀个数组长度为2
js argumentsvar arr2 = new Array(2,3) 数组⾥⾯包含 2 和 3
2、利⽤数组字⾯量创建数组
var arr = [ ] ;
var arr1 = [1,2,‘pink’,true];
检测是否为数组
1、instanceof
var arr = [ ]
consloe.log (arr instanceof Array)
2、 isArray
Array.isArray(arr)
添加删除数组元素
1、push() 末尾添加
var arr = [ 1 , 2 ,3 ,4]
arr.push(5,*******);
返回新数组长度
2、unshift() 开头添加
arr.unshift('red,**)
返回新数组长度
3、pop()删除数组元素
arr.pop() 删除最后⼀个 ⼀次只能⼀个 没有参数
返回删除的元素
4、shift()
arr.shift() 删除第⼀个
数组排序
1、reverse() 翻转数组
2、sort() 冒泡排序
arr.sort(); 有bug
升序排列
arr.sort(function (a , b){
return a - b;
});
降序排列
arr.sort(function (a , b){
return b - a;
});
数组中的索引
1、arr.indexOf(’ ‘)
从前到后 返回数组中元素位置 只返回第⼀个 不到返回 -1 2、arr.lastindexOf(’ ‘)
从后到前
数组转换为字符串
1、toString()
2、join(分隔符)
arr.join(’&’)
基本包装类型
字符串型 布尔型 数字型
var str = 'aaa';
str.length
执⾏过程
var a = new String(‘aaa’);
str = a;
a = null;
字符串
字符串不可变(只是改变了地址)
所以不要⼤量拼接字符串
字符查位置
1、indexOf(要查的内容,起始的位置)
2、lastindexOf()
位置字符
1、charAt(i)
返回指定位置字符
2、charCodeAt(index)
返回相应索引号的ASCII值 可以判断键盘输⼊内容
3、str[index] 获取指定位置字符
var str = 'absdfljsalaaaaa';
var o = {}
for(var i=0;i<str.length;i++){
var strs = str.charAt(i);
if(o[strs]){
o[strs]++;
}else{
o[strs] = 1;
}
}
console.log(o)
o 调⽤两种⽅法 if⾥⾯判断是否存在
o.变量是直接当成属性
o[‘变量’]可以当成不同的属性
字符串操作
concat(str1,str2…) 连接两个或者多个字符串
substr(‘截取的起始位置’ , ‘截取⼏个字符串’)replace(‘被替换的字符’,‘替换的字符’) 只会替换第⼀个split(‘分隔符’) 字符串转换为数组
join数组转换为字符串
简单数据类型
string number boolean undefined null
复杂数据类型 引⽤数据类型
⽤new创建的对象 Object Array Date
简单数据类型 堆 存储的值
复杂数据类型 栈 变量内容存在栈
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论