javascript基础知识整理2

来源:互联网 发布:php会员卡系统源码 编辑:程序博客网 时间:2024/06/02 05:20

匿名函数就是没有名字的函数(了解)

function(){}//报错,需要和表达式使用。var foo=function(){}

一般是在函数表达式内使用,不能单独存在。

自调用函数(了解)
这个自调用函数会在书写的位置上执行一次。

(function(){})()

函数的类型
检测方式typeof 函数的类型是function

function foo() {}console.log(typeof  foo)//"function"

函数注释的使用
在函数前输入/**点击回车,可以输入一些跟函数参数返回值相关的标注。

递归(了解)
函数在函数内调用自己,这种形式我们称为递归

function fun(){    cosole.log("今天中午吃什么");    fun();}fun();//使用递归的时候注意不要造成死循环。

求5的阶乘

function jiecheng(n){    if(n<=1){        return 1;    }else{        return jiecheng(n-1);        //return n*arguments.callee(n-1);    }}jiecheng(5);

对象
生活中,抽象和具体的关系
对象是具体的一个东西。
每一个对象都有自身的特征,也都有自身的行为
创建对象的方式:
var obj = {};
var obj = new Object();

添加属性和方法通过对象名.属性名
obj.faceValue = “超高”;
方法跟属性的区别在于,方法中保存的是函数。
obj.sayHi = function(){
alert(“你好”);
};
this
在方法内使用this表示这个方法所属于的对象。
**创建对象的方法*8
1.构造函数
在调用构造函数的时候,调用前加new、
构造函数的作用就是创建对象,在构造函数内需要做的一件事情就是添加属性和方法。
使用this,this就代表创建出来的对象。
构造函数的名字,首字母大写。

function Person(name,age){    this.name=name;    this.age=age;    this.sayhi=function(){        alert("大家号我是"+this.name)    }}var sisi=new Person("sisi",18);

2.对象字面量方式
var obj = {}; 对象字面量
可以直接在{}内添加属性和方法,多个属性间使用逗号分隔

var obj={
name:"sisi",
age:"18",
sayhi:function(){}
}

对象属性的访问方式
obj.name
obj[“name”] 必须写双引号
访问的效果是相同的。

循环对象的方法-forin
对象是一种无序的数据存储形式
想要获取对象中所有的值通过for。。in
for(var key in obj){
key 在forin中表示某一个属性名,是字符串格式
obj[key] 表示obj中key属性的属性值
}

``` var obj={    name:"sisi",    age:"18",    sayhi:function(){}}for(var k in obj){    console.log(obj[k]);}

json 数据存储格式
var obj = {
“name”:”张三”
};

对象的属性如果不存在,访问时值为undefined

内置对象-数组
var arr=[1,2,3,4];
1.数组常用的方法。

  • arr.join(输入一个字符串) join方法返回一个连接后的字符串
    不传参数返回的结果1,2,3,4 ,如果不想要逗号,可以传入一个空字符串。
  • arr.toString() 可以将arr转换为字符串 ,不更改原有数组。
var arr=[1,2,3,4];console.log(arr.tostring())//"1,2,3,4";console.log(arr.join("-"))//"1-2-3-4"
  • arr.push()可以项数组最后添加一个或多个新项,返回添加后的数组的元素个数。
  • arr.pop() 从数组最后删除一个元素,并且返回这个元素。
    +arr.unshift() 从数组前面插入一个或多个元素,注意插入多个的顺序。 返回添加后的数组的元素个数
  • arr.shift(); 从数组前面删除一个 ,返回删除的元素
  var arr=[1,2,34];    console.log(arr.push(1,2));//5,返回插入后数组的个数console.log(arr.pop());//2返回删除的元素console.log(arr.unshift("1", 2));//6返回数组的个数console.log(arr.shift());//"1"返回杀出的元素
  • indexOf(参数1,参数2(可选))
    参数1为要寻找的值,参数2可选,为寻找的起始位置。 返回找到的索引值(只能找到一个)。
    如果没找到,返回-1.ie6-ie8的不兼容
  • astIndexOf(参数1,参数2(可选))
    使用方式与indexOf相同,不同点为从数组最后开始查找。ie6-ie8不兼容
  • arr.reverse() 翻转, 可以将数组所有元素翻转,改变原数组
  • arr.sort() 排序 改变原数组。
    对字符串排序是按照首字母排序。
    对数值排序也是按照第一位排序,想要正序或倒叙可以传入函数参数
var arr=[1,2,34];arr.sort()//正序排序arr.sort(function(a,b){    return b-a;})//倒序排序arr.sort(function(a,b){    return a-b;})//正序排序
  • contact()可以传入多个参数,连接在arr后,返回新数组,不改变原有数组。
    复制数组:arr.concat(); 如果不传参数,也会返回一个和原数组相同的新数组
var arr1=[1,3,4,6];var arr2=[10,3,4,6];console.log(arr1.concat(arr2));//arr1和arr2连接arr1.concat(1,2);//arr1.concat()//相当于arr1的复制。
  • arr.slice(start,end) 接受两个参数 两个参数都是索引值,可以从arr中拷贝一部分元素,含start不含end。 返回拷贝的部分,不改变原数组

  • arr.splice(start,len,..) start表示截取的起始位置,len表示要截取多少个元素,后面的所有参数是可选的,表示将后面的参数添加到删除掉的位置。
    返回删除的元素,改变原数组
    清空数组的三种方式
    arr.length = 0;
    arr.splice(0,arr.length);
    arr = [];
    日期对象(了解)
    Date
    var date = new Date();
    日期转换成毫秒

var date=+new Date();var date1=Date.parse("2017-02-10");

Date常用的方法。
date的方法,不用记
getTime() 返回毫秒数和valueOf()结果一样
getMilliseconds()
getSeconds() 返回0-59
getMinutes() 返回0-59
getHours() 返回0-23
getDay() 返回星期几 0周日 6周6
getDate() 返回当前月的第几天
getMonth() 返回月份,从0开始
getFullYear() 返回4位的年份 如 2016

字符串的方法
基本包装类型
我们发现基本数据类型字符串具有属性,但是字符串又不是对象。
其实js中有一种称为基本包装类型的对象,在我们使用字符串的属性或方法的时候,会创建一个基本包装类型对象,使用这个对象的属性和方法,使用完毕后这个对象立即销毁。

length长度属性,字符串的字符长度

访问某个字符的方式
str.charAt(索引值)
str[索引值] h5添加的,兼容性有问题

位置方法
indexOf(value,start) value要检索的字符,start是起始索引值。
lastIndexOf(value,start) 从后面进行检索

操作方法
连接字符串 str.concat(“1”) 但是+更常用
截取字符串str.slice(2, 5);
截取字符串,与slice相似,一般使用slice str.substring(2, 5);
按照长度截取字符串 str.substr(1, 4);

大小写转换
转换为大写str.toUpperCase();
转换为小写str.toLowerCase();

分割字符串 str.split(“-“);

replace(参数1,参数2) 将字符串中的参数1部分更换为参数2,并且返回一个新字符串。

原创粉丝点击