锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

前端学习ing

时间:2022-11-07 00:30:00 revere传感器csprevere传感器kis

数组是一组数据集,可以存储任何类型的元素

1.通过new来创建数组

1.var arr = new Array();

2.利用数组字面量创建数组

 var 数组名 = [1,2,3,4,5];//创建空数组      索引号=[0,1,2,3,4]; //如果没有索引号输出元素,输出结果将成为undefined

任何数据类型都可以存储在数组中

创建字面量是最常见的,遍历是从头到尾访问一次

var arr = ['red','green','blue']; for (var i = 0;i<3;i  ){     console.log(arr[i]); } 

数组名.length在循环中可以直接访问数组的长度arr.length就会遍历

for(var i = 0;i < arr.length;i  ){     console.log(arr[i]) } 

for里的i是计数器,当索引号使用

var arr=[2,6,5,4,3]; var sum = 0; var average = 0; for (var i =0;i
var arr = ['red', 'green','blue','pink']; var str = ''; var sep = '*'; for (VAR i = 0;i < arr.length;i  ){     str  = arr[i] sep; } console.log(str);

1.修改新数组长度length长度

var arr = ['red','geen','blue']; arr.length = 5; console.log(arr);

2.增加数组元素,修改索引号,添加数组元素

var arr1 = ['red','green','blue']; arr1[3] = 'pink'; console.log(arr1); //如果索引号已经占用,以前的元素将被替换 arr1[0] = 'yellow'; console.log(arr1); arr1 = '有'; //不要直接给数组名赋值,否则里面的原始元素会消失
//遍历原旧数组,找出大于等于10的元素。 ///newArr var arr = [2,0,4,6,12,3,556,87,934]; var newArr = []; var j = 0; for (var i = 0;i < arr.length;i  ){     if (arr[i] > 10){         ///新数组的索引号应从零开始依次增加         newArr[j] = arr[i];         j  ;     } } console.log(newArr);
//方法二 var arr = [2,0,6,1,77,0,52,0,257]; var newArr = []; //刚开始newArr.length 就是0 for (var i = 0;i < arr.length; i  ){     if(arr[i] >= 10){         //新数组索引号应从0开始,依次递增             newArr[newArr.length] = arr[i];     } } console.log(newArr);

去除数组中的0后,形成不应包含0的新数组。

存储筛选后的数据需要一个新的数组。

遍历原数组,在新数组中添加非0数据(此时注意使用数组名称 索引格式接收数据)。

使用新数组中的数数length不断累加

var arr = [2,0,6,1,77,0,52,0,25,7]; var newArr = []; for (var i = 0; i 

反过来存储数组的内容,声明一个新的数组newArr,取旧数组索引号的第四个(arr.length -1),最后i--

var arr = ['red', 'green','blue','pink','purple']; var newArr = []; for (var i =arr.length - 1; i>=0 ; i--){     newArr[newArr.length] = arr[i] } console.log(newArr);

冒泡排序

var arr = [5,4,3,2,1]; for (var i = 0; i <= arr.length - 1;i  ){///外管列数     for (var j = 0; j <= arr.length - i; j  ){////内层管每次交换的次数         ///内部交换两个变量值,与较前一个和后一个数组元素         if (arr[j] < arr[j   1]){             var temp = arr[j   1];             arr[j] = arr[j   1];             arr[j   1] = temp;         }     } } console.log(arr);

函数

函数是包装可重复执行的代码块 目的是重复使用大量代码

function getSum(num1,num2){     var sum = 0;     for (var i = num1; i <=num2; i  ){         for(var i = num1; i<=num2; i  ){             sum  =i;         }         console.log(sum);     }     getSum(1,100);     getSum(10,50);     getSum(1,1000); }

利用函数求任意两个数之间的累积和

function getsum(num1,num2){     console.log(num1   num2); } getsum(1, 3); getsum(3, 8); ///求函数任意两个数之间的和 function getsums(start,end){     var sum = 0;     for (var i = start; i<=end; i  ){         console.log(sum);     } } getsums(1,100);

!多个参数用逗号隔开,形状参数可视为无声明变量

///函数形参数匹配参数 function getsuma(num1,num2){         console.log(num1,num2); } //如果上次按的数量与形参的数量一致,则正常输出 //如果实参的数量是多余的形参的数量,无论多余的数量如何,都会获得形参的数量 getsuma(1,2,3) //如果实参数小于形参数,num二是变量但无接收值,多余的形参定义为undefined,结果就是NaN getsuma(1)

函数内部不适合写输出句,因此函数结果需要返回

function 函数名(){     return 需要返回的结果; } 函数名(); function getresult(){     return 666; } getresult(); console.log(getresult());  function cook(num1,num2){     return num1   num2; } console.log(cook(3,5))

两个数的最大值

function getmax(num1,num2){     return num1 > num2 ? num1 :num二、//三元表达式 } console.log(getmax(1,3));
function getsm(num1,num2){     return num1   num2;//return后面的代码不会执行     alert(这是不会执行的) } console.log(getsum(1,2)); //2.retun只能返回一个值
function fn(num1,num2){
    return num1,num2;//返回的结果是最后一个值
}
console.log(fn(1,2));
function getresu(num1,num2){
    return [num1+num2];
}//要返回俩个数的结果可以使用数列

函数如果有return就返回return后面的值,如果没有return就返回undefined

arguments存储了传递的所有实参

function fn(){
    console.log(arguments);//里面存储了所有传递过来的实参
    console.log(arguments.length);
    console.log(aeguments[2]);
    //遍历arguments
    for (var i = 0; i < arguemnts.length;i++){
        console.log(arguments[i]);
    }
}
fn(1,2,3);

伪数组,并不是真正意义上的数组

具有数组length的属性

按照索引的方式进行存储的

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

function getmax(){
    var max = arguments[0];
    for(var i = 1;i < arguments.length; i++){
        if (arguments[i] > max){
            max = arguments [i];
        }
    }
    return max;
}
console.log(getmax(1,2,3));
console.log(getmax(1,2,3,4,5));
console.log(getmax(1,2,3,4,5,6,7));
function reverse(arr){//反转
    var newArr = [];
    for (var i = arr.length - 1; i >= 0; i--){
        newArr[newArr.length] = arr[i];
    }
    return newArr;
}
var arr1 = reverse([1,2,3,4,5,6]);
console.log(arr1);
var arr2 = revere(['red','pink','nlue']);
console.log(arr2);

使用函数判断是否是闰年

function isrunnian(year){
    var flag = false;
    if(year % 4 == 0 && year % != 0 || year % 400 == 0){
        flag = true;
    }
    return flag;
}
console,log(isrunnian(2000))
//函数是可以相互调用的
function fn1(){
    console.log(11);
    fn2();
}
fn1();
function fn2(){
    console.log(22);
}

全局变量:在全局作用域下的变量,在全局作用下可以使用

注意:如果在函数内部,没有声明直接赋值的变量也属于全局变量

局部变量,只能在函数内部起作用,函数的形参也是个局部变量

函数内部如果直接定义一个变量没有声明的话也算一个全局变量

function fun(){
    var num1 = 10;//num1是局部变量,只能在函数内部使用
    num2 = 10;//num2是全局变量,因为没有声明
}
fun();
console.log(num2);

从执行效率来看全局变量和局部变量

(1)全局变量只有浏览器关闭的时候才会销毁,比较占用资源

(2)局部变量当我们程序执行完毕时候销毁,比较节约内存资源

//作用域链:内部函数访问外部函数的变量,采取的是链式查找的查找的方式来决定取那个值,这种结构我们称为作用域链。
var num = 10;
function fn(){//外部函数
      var num = 20;
    
    function fun(){//内部函数
        console.log(num);
    }
    fun();
}//谁离得近就执行谁
fn();

作用域链,一层一层往外翻的查找

案例1

var num = 10;
fun();

function fun(){
    console.log(num);
    var num = 20;
}
//相当于执行了以下操作
var num;

function fun(){
    var num;
    console.log(num);
    num = 20; 
}
num = 10;
fun();

案例2

f1();
console.log(c);
console.log(b);
console.log(a);

function f1(){
    var a = b = c = 9;
    console.log(a);
    console.log(b);
    console.log(c);
}
//预解析执行以下代码
function f1(){
    var a;
    a = b = c = 9;
    //相当于 var a = 9; b = 9; c = 9;
    console.log(a);
    console.log(b);
    console.log(c);
}
f1();
console.log(c);
console.log(b);
console.log(a);

对象是一组无需的相关属性和方法的集合,所有事物都是对象,例如:字符串、数值、数组、函数等。

var obj = {
    uname: 'yzc',
    age: 18,
    sex: '男',
    sayhi: function(){
        console.log('hi');
    }
}
//里面的属性或者方法我们采用键值对的形式 键 属性名 : 值 属性值
//多个属性或者方法中间用逗号隔开的
//方法冒号后面跟的是一个匿名函数
2.使用对象
//调用对象的属性,我们采取 对象名.属性名
console.log(obj.uname);
//调用属性还有一种方法 对象名['属性名']
console.log(obj['age']);
//调用对象的方法 sayhi 对象名.方法名() 记得加小括号()
obj.sayhi();
//利用构造函数创建对象
//外面需要创建的对象有 相同的属性:名字 年龄 性别 相同的方法:
//构造函数的语法格式
function 构造函数名(){
    this.属性 = 值;
    this.方法 = function(){}
}
new 构造函数名();//调用构造函数的方法
function Star(uname,age,sex){
    this.name = uname;
    this.age = age;
    this.sex = sex;
    this.sing = function(sang){
 	console.log(sang)
}
}
var abc = new Star("yzc",22,'女');//把构造函数写的结果传给abc
console.log(abc.name);
console.log(abc['name']);
abc.sing('qwer');
//1.构造函数名字首字母要大写
//2.构造函数不需要return就可以返回结果
//3.外面调用构造函数 必须使用new
//4.外面只要new Star() 调用函数就创建一个对象
//5.外面的属性和方法前面必须添加this

new关键字执行过程

//new构造函数可以在内存中创建了一个空的对象
//this就会指向刚才创建的空对象
//执行构造函数里面的代码,给这个空对象添加属性和方法
//返回这个对象
function Star(uname,age,sex){
    this.name = uname;
    this.age = age;
    this.sex = sex;
    this.sing = function(sang){
        console.log(sang);
    }
}
for(var k in obj ){
    console.log(k);//k 变量 输出 得到的是 属性名
    console.log(obj[k]);//obj[k] 得到的是属性值
}

时间函数

const date = new Date();//!!!!!必须写这句话才可以使用日期函数
console.log(date.getFullYear());
console.log(date.getMonth() + 1); //getMonth取值为0-11,所以要在getMonth()后面加1
console.log(date.getDate());//几号
console.log(date.getDay());//周几,周日的话返回为0

const date = new Date();
const year = date.getFullYear();
console.log('今年是' + year +'年');
const date = new Day();
const arr = ['星期日','星期一','星期二','星期三','星期四','星期五','星期六'];
console.log('今天是' + arr[4]);
//格式化日期
const date  = new Date();
console.log(date.getHours());
console.log(date.getMinutes());
console.log(date.getSeconds());
//要求封装一个函数返回当前的时分秒
function getTime() {
    var time = new Date();
    var h = time.getHours();
    h = h < 10 ? '0' + h : h;
    var m = time.getMinutes();
    m = m < 10 ? '0' + m : m;
    var s = time.getSeconds();
    s = s < 10 ? '0' + s : s;
    return h + ':' + m + ':' + s  ; 
}
console.log(getTime());// 11:07:42
//获取body元素
var bodyEle = document.body;
console.log(bodyEle);
console.log(bodyEle);
//获取html元素
//var htmlEle = document.documentElement;
var htmlEle = document.documentElement;
console.log(htmlEle);

事件


    
    

点击按钮来显示当前时间的年月日


    
    
某个时间

1123

innerText 和 innerHTML的区别


    

1223

表单元素点击事件


    
    ;
    

输入密码,显示密码,再显示回去




    

通过js来变化css

  


    

显示或隐藏文本框里的内容




  
    



    

请输入6~16位密码

排他思想,在一群元素中只使用某一元素




   
   
   
   
   
   
   
    
    
var div = document.querySelector('div');
//console.log(div.getTime);
console.log(div.getAtrribute('getTime'));
div.setAttribute('data-time',20);
console.log(div.getAtrribute('data-index'));
console.log(div.getAtrribute('data-list-name'));
//h5新增的获取自定义属性的方法,它只能是data开头的
//dataset是一个集合里存放了所有以data开头的自定义属性
console.log(div.dataset);
console.log(div.dataset.index);
console.log(div.dataset['index']);
//如果自定义属性里面有多个-连接的词,我们获取的时候采取驼峰命名
console.log(div.dataset.listName);
console.log(div.dataset['listName']);

锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章