js面向对象学习笔记之七(函数 与 基础控制结构)

【函数部分】

1. 函数内置参数数组对象 arguments

function sum(){
    var len = arguments.length;
    var s = 0;
    for(var i = 0;i<len;i++){
        s += arguments[i];
    }
    return s;
}; 

var b = sum(1,2,3,4,5);
alert(b); //15

2. 预定义内置函数

parseInt()                 //字符串转整型   第二个参数 选择进制  parseInt(0777,8);
parseFloat()               //字符串转浮点型
isNaN()                    //判断是否为不是一个数字 不是返回true
isFinite()                 //检测一个 不是无穷大 或无穷小的 非NaN的数字  返回true
encodeURI()                //url编码 可用 部分转义 只转义参数
decodeURI()                //url解码
encodeURIComponent()       //url编码 不可用 完全转义 所有的符号都转义
decodeURIComponent()       //url解码
eval()                     //会将 参数当做 javascript代码执行 性能慢 不安全

alert()                    //弹出警告框  会阻塞线程

3.  变量扩展类型----函数

 var sum = function(a,b){return a+b;};
 var add = sum;
 add(1,2); //3

4. 函数作为参数

function add(a){
    return a+1;
 }

 function addachd(a,b,func){
    return a+b+func(b);
 }

 //函数作为参数传递
 alert(addachd(4,5,add)); //15
 //我们还可以使用 这样可以少了一个全局声明的函数
 alert(addachd(4,5,function(c){return c+1;})); //15

5. 自调函数

  // 第一个括号里面放的是 匿名函数本身
  // 第一个括号里面放 传给匿名函数的参数 并立即调用
  (function(a){
     alert(a+1);
  })(5);

6. 闭包

//实质是某个函数A内部 的函数B 未通过传参 能使用A内部的变量a

 var B;

 function A(){

    var a = 9;
    B = function(){
        return a;
    }
    return B;
 }

 alert(B());

/*===================================================*/

 var result=[];
 function foo(){
      var i= 0;
      for (;i<3;i=i+1){
         result[i]=function(){
             alert(i);
         }
    }
 };
 foo();
 result[0](); //闭包在初始时不会赋值 而在执行时 才会去寻找 对应的值
 result[1]();
 result[2]();

7. 私有函数

/*===================================================*/

 function A(){
    var a = 9;
    B = function(){
        alert(a);
    }
 }

 alert(A()); //任何函数都有个默认的返回值 undefined 

function A(){

    var a = 9;
    var B = function(){
        alert(a);       //所有子函数都可以调用父函数声明的任何变量 全局函数不可以 闭包可以
    }
    B();
 }
 A(); // 9

/*===================================================================================*/

【基本控制结构】

【if/else】

 if(...){
    //code here...
 }else{
    //code here...
 }

【switch/case】

 var a = 1;

 switch(a){
    case 1:
      //code here...
      break;
    case 2:
      //code here...
      break;
    ...
    default:
      //code here...
      break;
 }

【while】

 var i = 1;
 while(i<10){
    i++;
 }

【do..while】

 var i = 1;
 do{
   i++;
 }while(i<10)

【for】

 for(var i = 0; i<10 ; i++){
     //code here...
 }

【for...in】(一般用于数组遍历)

 var arr = [1,2,3,4,5];
 for(var j in arr){
    //code here...
    alert(j+"value:"+arr[j]);
 }

.

时间: 2024-10-09 07:50:02

js面向对象学习笔记之七(函数 与 基础控制结构)的相关文章

js面向对象学习笔记(二):工厂方式:封装函数

//工厂方式:封装函数function test(name) { var obj = new Object(); obj.name = name; obj.sayName = function () { alert(this.name); }; //抛出 return obj;}var p1 = test('小明');p1.sayName();var p2 = test('小王');p2.sayName(); //优化//创建对象要注意首字母大写//当new去调用一个函数:这个时候函数中的thi

OOP面向对象学习笔记(1)---基础概念

一:什么是对象? 世间万物皆对象,包括有形的和无形的. 二:对象的组成是什么? 元素:是对象的数据模型,用于描述对象.如一个人(对象)的年龄,身高等等. 行为:是对象的行为模型,用于描述对象做什么.如一个人(对象)可以吃饭.学习等等. 三:什么是面向对象编程? 在编程的时候数据结构都通过对象的方式进行存储. 四:为什么使用面向对象? 对象的描述方式更加贴合真实世界,有利于大型业务的理解,使我们思路开阔. 能够对代码进行更好地复用,精简代码. 五:面向对象的实质? 把要解决的问题都用对象的方式解决

js面向对象学习笔记之二(debug调试方法)

1. js的调试 很明显,js 调试只能够通过 alert 进行打印 alert(id); 对于复杂的数据类型,我们可以通过将其转换成json格式 再进行弹出 alert(JSON.stringify(data)); 2. DOM 信息调试 对于我们需要获取到的信息 可以根据要求打印到dom元素里 document.write(data); //会覆盖整个文档 3. 在程序端调试 直接在程序端打印所需信息后退出 var_dump() print_r() 4. js 其他错误信息处理 /*====

js面向对象学习笔记之一(类与对象)

1. javascript中的类即函数 /*==============================类即函数=====================================*/ function People(name,sex,addr){ this.name = name; this.sex = sex; this.addr = addr; this.foo = function(){ alert(this.name + this.sex+this.addr); } } var

js面向对象学习笔记之八(cookie使用 与 url的get参数获取)

1. COOKIE的使用 <script src="http://code.jquery.com/jquery-1.9.0.min.js"></script> <script src="./jquery.cookie.js"></script> <script> //这个设置 与 移除 是一一对应的 默认cookie 作用域为当前文件夹下 $.cookie("favourite-city"

js面向对象学习笔记之六(变量)

[1.值对应的boolean] false 布尔值 false 对象 null 数字 NaN (not a number) 数字 0 初始值 undefined 空字符串 "" true 字符串 "0" 或其他 非以上六种值 [2. null 与 undefined 的不同] null 实质是被赋予的 空的对象 或 数组 undefined 则是 声明或者未声明的变量 但未赋值的变量初始值 所以并不是 使用了 var 声明就不会出现undefined 所有没有初始值

OOP面向对象学习笔记(2)---基础实践

一:构造函数与析构函数 构造函数:在类被实例化时自动调用的一个函数.主要用来初始化. 析构函数:程序运行结束时(或者对象被销毁时)自动调用的最后一个函数.主要用来释放资源等. code next... 1 <?php 2 class Test { 3 public function __construct($obj) { 4 echo "hello " . $obj . "<br>"; 5 } 6 public function __destruc

js面向对象学习笔记之三(Array 对象)

1. 数组的初始化: //三种初始化方式 new Array(); new Array(size); new Array(element0, element1, ..., elementn); 2. 属性 constructor 返回对创建此对象的数组函数的引用. length 设置或返回数组中元素的数目. prototype 使您有能力向对象添加属性和方法. 3. 方法 concat()     连接两个或更多的数组,并返回结果. 使用: arrayObj.concat(aobj1,aobj2

js面向对象学习笔记之四(Date 对象)

//日期字符串转时间戳 var date="2015-03-18"; date = new Date(Date.parse(date.replace(/-/g, "/"))); date = date.getTime(); document.write(date); var date = new Date(); //返回当前的时间对象 getDate() //日 从 Date 对象返回一个月中的某一天 (1 ~ 31). getDay() //星期 从 Date 对