js随笔

arguments 的使用

只有函数才有argument 对象,而且每个函数都内置了这个argument
里面存储所有传递过来的实参
演示形式是一个伪数组

伪数组:并不是真正意义上的数组
1.具有数组的length属性
2.按照索引的方式进行存储

3.没有真正数组的一些方法 pop() push()等等

冒泡循环
1.内外两循环
外层控制趟数 i<arr.length-1
内层控制趟数 j<arr.length-i-1

交换变量t

函数的两种声明方式

1.利用函数关键字自定义函数
function fn(){

}
fn();
2.函数表达式
var fun=function(){
console.log(‘我是函数表达式’);
};
fun();
fun是变量名 不是函数名
函数表达式声明方式跟声明变量差不多,只不过便令里面存的是值,而函数表达式里面存的是函数
函数表达式也可以进行传递参数

作用域

就是代码名字(变量)在某个范围内起的作用和效果,木得事为了提高程序的可靠性和减少命名冲突

js的作用域(es6)之前,全局作用域,局部作用域

全局作用域:整个script标签 或者是一个单独的js文件
var num=10;

局部作用域(函数作用域):在函数内部就是局部作用域,只在函数内部其效果和作用

全部变量
1.在全局作用域下的变量
2.如果在函数内部,没有声明直接赋值的变量也叫作全局变量

局部变量
在局部作用域下的变量 在函数内部的变量
函数的形参也可以看成是局部变量

全局变量只有浏览器关闭的事后才会被销毁,比较占内存
局部变量:只有函数内部使用

对象:一个具体的事物
属性:事物的特征
方法:对象的行为

var obj={}; 创建了一个空的对象
var obj={
name:‘zhangsanfeng’,
age:14,
sex:女,
sayhi:function();

}

调用对象的属性名;
1.对象.属性名
2.对象[‘属性名’]

调用对象的方法
对象.方法

变量,属性,函数,方法的区别

1.变量和属性相同的 他们都是用来存储数据

变量 单独声明并赋值
属性 在对象里面的不需要声明

2.函数和方法的相同点 都是实现某种功能
函数单独声明 函数名()来调用
方法在对象里面 对象.方法()来调用

创建对象
var obj=new Object(); 创建了一个空对象
obj.name=‘张三丰’;
obj.age=12;
obj.sex=‘nan’;
obj.sayhi=function(){

console.log(‘hi’);

}

console.log(obj.name);
console.log(obj.sayhi);

构造函数的语法格式

function 构造函数名(){
this.属性=值;
this.方法=function(){

}

}
用new进行调用
new 构造函数名();

new关键字执行过程

1.new 构造函数可以再内存中创建了一个空的对象
2.this救护指向刚才创建的空对象
3.指向构造函数里面的代码,给这个对象添加属性和方法
4.返回这个新对象(所以构造函数不需要return)

for in 遍历对象

    for(变量 in 对象)
    for(var k in obj){
        consolelog(k);     k变量输出 得到的是属性名
        console.log(obj[k]);   obj[k]   得到的是属性值
    } 

查文档

mdn

创建函数

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        var  obj=new Object(); //创建了一个空对象
           obj.name='张三丰';
            obj.age=12;
             obj.sex='nan';
            obj.sayhi=function(){

          console.log('hi');

         }

          console.log(obj.name);
          obj.sayhi();
          console.log(obj['sex']);
    </script>
</head>
<body>
    
</body>
</html>

遍历对象

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        var  obj={ 
           name:'张三丰',
            age:12,
             sex:'nan',
             sayhi:function(){
                 console.log('hi');
             }
        }

        //for in     遍历对象
        //for(变量 in对象)
        for(var k in obj){
            console.log(k);    // k变量输出 得到的是属性名   k不需要赋值
            console.log(obj[k]); //  obj[k]   得到的是属性值
        } 
        

    </script>
</head>
<body>
    
</body>
</html>

构造函数

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        function Star(name,age,sex){ 
            this.name=name;
            this.age=age;
            this.sex=sex;  //构造函数名字首字母要大写
            this.sing=function(sang){
                console.log(sang);
            }

        }
         var liudehua=new Star('刘德华',18,'男');    //构造函数不需要return就可以返回结果
         console.log(typeof liudehua);                 //调用函数返回的是一个对象
         console.log(liudehua.age);
         console.log(liudehua.sex);
         liudehua.sing('冰雨');
         console.log(liudehua); 

         var zxy=new Star('张学友',19,'男');
         console.log(typeof zxy);                 //调用函数返回的是一个对象
         console.log(zxy.age);
         console.log(zxy.sex);                 // 我们只要new Star()  调用函数就回创建一个对象liudehua
         zxy.sing('李香兰');                    //   一定要用this区别创建的对象

                                                  //构造函数创建对象的过程也叫作对象的实例化
    </script>
</head>
<body>
    
</body>
</html>

封装自己的数学对象

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        var myMath={
            PI:3.1415926,
            max:function(){
                var max=arguments[0];
            for(var i=1;i<arguments.length;i++){
                if(arguments[i]>max){
                    max=arguments[i];
                }
            }
            return max;
            },
            min:function(){
                var min=arguments[0];
            for(var i=1;i<arguments.length;i++){
                if(arguments[i]<min){
                    min=arguments[i];
                }
            }
            return min;
            }
        }

        console.log(myMath.PI);
        console.log(myMath.max(23,34,78));
        console.log(myMath.min(1231,1,23.5));
    </script>
</head>
<body>
    
</body>
</html>
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值