JackWong992 / article

慢慢来,其实会很快
http://www.feelone.top/article/
2 stars 0 forks source link

The way to the font end:JS基础 #11

Open JackWong992 opened 6 years ago

JackWong992 commented 6 years ago

JS基础以及一些小的案例实现


for循环二维数组:

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

JS中所有用到class的地方都必须换成className


this

指的是调用当前方法(函数)的那个对象。

自定义属性

HTML:
<input type="btton" value="按钮">
JS:
var oBtn = document.getElementsByTagName('input');
oBtn[0].abc="123";
console.log(oBtn[0].abc); // 123

JS可以为任何HTML元素添加任意自定义属性。 在JS中背景,color,相对路径都不能作为判断条件。 获取自身递增数字及匹配数组内容: 地址:http://js.jirengu.com/vudenelaxu/2/edit


  1. 数据类型: number,string,boolean,object,null,undefined,symbol 检测数据类型的方法:typeof a typeof的返回值:number,string,boolean,undefined,object,function(一种变量只存放一种数据类型) 5个false值:NaN,'',undefined,0,null
  2. 变量类型的转换 字符串转换为数字:parseInt(),parseFloat() 如果没有数字则返回NaN;如果开头为字符串,也是返回NaN 检测NaN的方法:isNaN() NaN!==NaN NaN+number=NaN 隐式类型转换 ==先把两边东西转为一样的类型,然后在比较 === 不转换,直接比较 -直接就是数字减法转换 ’+‘: 1. 字符串相加 2. 数字相加 ’-,,/‘只有数学含义 注释: 单行注释: // 多行注释: / */

变量作用域: 局部变量:定义在一个函数里,只能在这个函数里使用 全局变量:不定义在函数里面,在任何地方可以使用 闭包:子函数可以使用父函数的局部变量

function aaa(){
    var a=1;
    function bbb(){
        alert(a);
    }
}

JS中的运算符 +-*/%:加,减,乘,除,取模 取模的实例:隔行换色,秒转时间 赋值:=,+=,-= 逻辑: &&与 ||或 !非 运算符优先级:括号


程序流程控制: 判断:if switch 循环:while for do...while 跳出:break,continue 真/假: true,非零数字,非空字符串,非空对象 NaN,'',undefined,0,{} switch(变量/值){ case 值1:... break; case 值2:... break; case 值3:... break; default: ... }


变量提升

JavaScript引擎工作方式是:先解析代码,然后获取所有声明的变量,在一行行的运行。 这样造成的结果是:所有的变量的声明语句,都是被提升到代码的头部,这就叫做变量提升。 例如:var a=3; var b="ok"; 在js引擎中是这样操作的: 先找到一个a变量,初始化的值为undefined,然后在找到一个b的变量初始化值为undefined 接着第二步,赋值。给a变量赋值为3,b变量赋值为字符串ok


函数传参(函数传递参数)

fn(100)
function fn(a){ alert(b)  }    //a=100

fn(100,'px')
function fn(a ,b){alert( a+b) }     // 100px

函数传递参数: 参数=JS的数据类型:number,string,boolean,undfined,null,symbol,object 当然你也可以这样做:

fn( function(){ alert(1) } )
function fn(abc){
  abc();          //1
 }

例子:

function fn2(lol){
  lol(100)
 }
fn2( function(a){ alert( a ) } )

1.传参,lol指的是function(a){alert( a )}

  1. 代入,执行lol这个函数代入为100,执行得到结果为100 注意:执行有名字的函数的时候不需要带括号 例如:
    function fn4(){ alert(4) }
    function fn3( fn ){
    fn();
    }
    fn3( fn4 )   //4

    当然,参数的传递也可以是对象: 例如,我们平时在控制台输出可以使用console.log(1)

    function fn(w,d){
            w.onload=function(){
                d.body.innerHTML=123;
            }
        }
        fn(window,document);

    函数传参重用代码: 1、尽量保证HTML代码结构一致,可以通过父极选取子元素 2、把核心的主程序实现,用函数封装起来 3、把每组里不同的值找出来,通过传参实现


JS作用域

什么是作用域? 域:空间,范围,区域... 作用:读、写