1、函数

1.1 概述

可以重复利用的代码片段 ,可以完成某个特点功能

1.2 函数的定义(三种)

第一种

  1. function 函数名(形式参数列表){
  2. // 函数体
  3. }
  4. function sum (a+b){
  5. document.write(a+b); //输出a+b
  6. return a+b; //返回a+b
  7. }

第二种

  1. 函数名=function(形式参数列表){
  2. //函数体
  3. }

JS中的函数不需要指定返回的数据类型,可以返回任何类型(与java不同)

第三种

  1. 函数名 = new Function("参数""函数体");

注意: 参数和 函数体 必须拿双引号括起来 F大写

1.3 调用

函数名(实际参数列表)

1.4 特点(弱类型)

  1. JS中的函数在调用的时候,参数的类型没有限制,并且参数的个数也没有限制


  1. 如果实参少一个 那么那个形参为undefined


  1. 如果实参多一个 那么多出来的那个实参,没用

1.5 在JS中如果一个函数和前面的函数同名,那么会覆盖(不存在重载机制)

谁后声明,谁做主(不能同名)

1.6 内置函数

parseInt() // 将字符型转换成整型
字符串不是数字开头 返回 NaN

parseFloat() // 字符转浮点

isNaN() // 判断一个数值是否是NaN

isFinite() // 判断数值是否有限

eval() // 把字符串当作一段js代码来执行
**
escape() //将字符串中特殊字符进行编码

unescape() // 解码(escape() )

encodeURI() // 将URI 字符串进行编码

decodeURI() // 对已经编码的URI进行解码

2、类

2.1 json对象

  1. var s = {
  2. name:"zhangsan",
  3. age:15,
  4. //添加函数
  5. eat : function(){
  6. alert("eat方法")
  7. }
  8. }

2.2 给对象添加属性

**s.addr = "北京市";**
删除对象的属性 delete s[“name”];

2.3 在JS中如何定义类,如何new对象

定义类
和定义函数一样,就看怎么用,如果用了new就是类,没有new就是函数

  1. function 类名(形式参数列表){
  2. // 类体
  3. }

**

  1. 类名=function(形式参数列表){
  2. //类体
  3. }

创建对象
new 类名(实参)
在js中如果输出一个引用 会自动调用 toString()
js中类的定义,同时又是一个构造函数(构造器)的定义
例如

  1. function User(a,b,c){
  2. this.name = a ;
  3. this.add = b;
  4. this.id = c;
  5. }

this声明属性,表示当前对象
访问对象的属性
var s = new User(“zhangsan “,”beijingshi”,11);
s.add ; // 访问属性
s.[“add”]; //也可以这样访问

2.4 在类里面定义函数

语法
  1. this.函数名 = function(){
  2. // 函数体
  3. }

prototype属性

可以通过prototype属性给类动态拓展属性和函数

语法
  1. 类名.prototype.需要增加的函数名 = function(){
  2. // 函数体
  3. }

例如

  1. User.prototype.getAdd = function (){
  2. return this.add;
  3. }

通过Object对象创建自定义对象

  1. obj = new Object(任意一种数据类型)
  2. 通过obj.name = "zhangsan"; 来给对象添加属性
  3. 通过obj.doSome = function(){
  4. alert("zhangsan");
  5. }
  6. //给对象添加方法

第二种添加方法
  1. //通过第二种方法添加方法
  2. person.doSome = doSome;
  3. function doSome(){
  4. alert("这是第二种添加方法")
  5. }
  6. person.doSome();