js的基础知识与应用(二)


JS的基础应用

       传参:

                 1.   (一个参数) 声明:function 名字(参数){

                                  //code

                                  //参数

                   }

                  调用:名字(参数)

               2.   (多个参数) 声明:function 名字(参数1,参数2){

                                  //code

                                 //参数1,参数2

                  }

                 调用:名字(参数1,参数2)

  标示符和表达式:

              .  标示符

              [] 表达式

              只要 . 能干的  [] 都能干

             .只能操作已有属性

              undefind  未定义

数据类型:

                Number    123

                String    '123'  只要加单引号就是字符串

字符串和变量:

                var  a='123';

                      a是变量  '123'是字符串

 window.onload:

          写js

                   1.window.onload

                   2.获取元素

                   3.加事件....

获取一组元素:

                   document.getElementsByTagName('标签')

数组(Array):

                   [1,2,3,4,5]

                   length:数组的个数  从1开始

                  下标: 从0开始

this:

                  谁触发的事件  this就是谁

循环:

               自增:

               i=i+1;

               i+=1;

               i++;

 while(条件){

//code

}

for(初始值;条件;自增){

//code

}

自定义属性  高级浏览器第一遍 过滤掉

web分离  样式  结构  行为

字符号拼接 :两个单引号 两个加号 加号里写 i


=================================================

选项卡封装:

               index  索引

操作表单元素:

               获取:元素.value

               设置:元素.value='值';

操作非表单元素:

               获取:元素.innerHTML

              设置:元素.innerHTML='内容';      内容可以是任何东西(包括标签)

document.write  页面输出内容

字符串连接:

             **字符串不能换行

              1.换行可以  加号 拼起来

              2. \  每换行尾部加

              3. ``引号 直接加    第一个ES6的语法

              ()提高优先级  (this.index+1)

秘诀:两个单引号 两个加号 里面放变量

字符串和数字相加  会变成字符串  字符串不会运算

调试:

              工具:F12

              alert()

              console.log()

              快捷键:ctrl+shift+j

               FF(firefox) :安装一个 firebug(重新刷新)

               IE:打开错误的调试的工具

               工具--Internet选项--高级--禁用脚本本调试(其它)

数据类型:

基本数据类型(不可分)

                string  字符串

                number    数字

                boolean        布尔值

                undefined        未定义

                object  对象(可分的)  object里面可以包数组也可以包对象

               function        函数 ?有争议

               global  ** ES6  顶层对象

typeof  检测数据类型

undefined什么时候会出现?

               1.变量声明了,但是没有赋值.

               2.访问一个不存在的属性.

               3.当参数没有值

字符串转成数字

              显式类型转换:  强制类型转换

                      parseInt(字符串)  把字符串转变成整数      '12.5px'  12            

                      parseFloat(字符串)  把字符串转变成小数(浮点数)        '12.5px'  12.5

                      Number(字符串) 把字符串转变成数字  比较严格。      '12.5px'  非数字是NaN


 isNaN(x) 函数用于检查其参数是否是非数字值。

                如果 x 是特殊的非数字值 NaN(或者能被转换为这样的值)返回的值就是 true。

                如果 x 是其他值,则返回 false。

隐式转换:

                 -  *  /  % ==  ><    隐式转换,尽量别用。

                alert('10'*2)  ('10'+2)    加号 做了字符串 拼接



====================================================

事件:

              onmouseover

              onmouseout

              onclick

              onchange  select的value 改变的时候用    99%

 select里面的option的value怎么获取

              option的value=oS.value

作用域:

            局部变量:只能在函数内部使用

            全局变量:在哪里都能使用

            闭包:子函数可以去使用父函数局部变量(如果函数内部的变量和全局同名  不会覆盖)

匈牙利命名法:前面有类型前缀后面跟单词首字母大写

          **必须要遵守

          o object  oBtn 一个对象

          a array aBtn 多个东西

          **可以遵守

          i int iNum 整数

          s string sName 字符串

          b boolean bOk 布尔值

流程控制语句:

           if..else..

           switch(条件){

                    case 情况1: 语句

                    break;

                   case 情况2:

                   break;

         }

break  打断执行  后面代码不执行

continue  跳过本次执行

return:返回值

            1.可以返回任何东西

            2.阻断后面代码执行

            3.没有返回值 返回undefined

简写:      条件&&语句1

        if(条件){

                语句1

         }

       条件?语句1:语句2;  (三目运算符)

             if(条件){

                      语句1

             }else{

                     语句2

             }


什么是真

             true  非空对象 非0数字 非空字符串

什么是假

             false 0 '' null undefined NaN

获取行间样式 :obj.style.xxx

获取非行间样式(生效的样式)

              obj.currentStyle.样式名        IE (低级浏览器)

              getComputedStyle(obj,false).样式名  IE9+ chrome FF    (高级浏览器)

              false 是兼容老版本火狐浏览器

处理兼容  if...else{}

              if(obj.currentStyle){

                              obj.currentStyle.样式名

              }else{

                             getComputedStyle(obj,false).样式名

              }

未定义的属性undefind

未定义的函数报错

                    function getStyle(obj.sName){

                                return

                      obj.currentStyle?obj.currentStyle[sName]:getComputedStyle(obj,false)[sName];

                    }



=======================================================

随机数

                Math.random()  0-1的随机数不包括

范围随机数

                parseInt(Math.random()*(m-n))+n

eval:注入攻击

               eval把字符串解析成js能理解的程序

运算符:

                算术运算:+ - * /

                莫  %  取余

赋值运算符

                = += -= *= /= %=

比较运算符

               > < >= <=

               == !=

               === 全等

               !== 不全等

= 赋值

== 判断是否相等,只要值一样就ok

=== 判断是否全等,值要一样,类型也要一样。

逻辑运算符

             && 与(并且) 两边的条件必须都满足才算真的。

             || 或(或者) 两边的条件满足一个就是真的。

             ! 非(取反)

双色球:

          arr.push  往数组里面添加

          1 随机1-34

          2.不重复

          3.6个

不重复:找数组里面的重复的  找到返回true 找不到返回false

                 补0:  return n<10?'0'+n:''+n;

定时器:

              setInterval(函数,时间)

                       setInterval(function(){JS代码},时间)

时间:毫秒    1000    1s

***只要用定时器 一定要先关 再开

setTimeout(函数名字,时间)  只执行一次

clearTimeout(函数名字)

你可能感兴趣的:(js的基础知识与应用(二))