js 3

1、数据类型转换

         1、隐式转换

                   函数:typeof(变量) 或 typeof 变量

                   与字符串做加法操作,最后会将其他数据转换为字符串

         2、转换函数

                   1、toString()

                   2、parseInt(数据)

                   3、parseFloat(数据)

                   4、Number(数据)

2、运算符和表达式

         1、运算符

                   算术运算符,关系运算符,逻辑运算符,位运算符 ... ...

         2、表达式

                   由运算符以及操作数所组成的式子

                   a+b;

                   a%4==0&&a%100!=0

 

                   a=b;

         3、运算符详解

                   1、算术运算符

                            +,-,*,/,%,++,--

                            ++:自增

                                     ++作为前缀:先自增再使用

                                     ++作为后缀:先使用再自增

 

                                     var num = 5;

                                     num++; ==> num = num + 1

                   2、关系运算符

                            >,<,>=,<=,==,!=,===,!==

                            ==:判断等于,判断两个数据是否相等,如果相等,结果为true,否则为false

                            !=:不等于,判断两个数据是否不相等,如果不相等,结果为true,否则为false

                            ===:判断数值和类型是否完全相等,完全相等时,结果才为true,否则为false

 

                            由关系运算符组成的表达式称之为 关系表达式,结果一定是boolean的

 

                            注意:

                                     1、字符串 与 字符串 判断大小

                                               比每位字符的Unicode码

 

                                               "5">"30" : true

                                     2、字符串 与 数字 判断大小时

                                               将字符串 隐式的通过 Number()函数转换为数字再做比较

                                               5>'30' : false

                                              

                                     3、任何一个数据与NaN进行比较时,结果一定是false

                                               5>'3a' : false,注意,3a会被转换成NaN

                   3、逻辑运算符

                            1、逻辑运算符

                                     !:逻辑非

                                     &&:逻辑与

                                     ||:逻辑或

                            2、短路逻辑

                                     1、&&

                                               只要第一个条件为假的话,则不会判断第二个条件,整个表达式结果为假

                                               如果第一个表达式为真的话,则继续判断(执行)第二个表达式,并且以第二个表达式的结果作为整个表达式的结果

                                     2、||

                                               只要第一个条件为真的话,则不会判断第二个条件,整个表达式结果为真

                                               如果第一个表达式为假的话,则继续判断(执行)第二个表达式,并且以第二个表达式的结果作为整个表达式的结果

                   4、位运算符

                            1、&

                                     场合:判断奇偶性

                            2、|

                                     场合:向下取整

                            3、<<

                                     将二进制数字,向左移动几位,右面以0补位

                            4、>>

                                     将二进制数字,向右移动几位,左边以0补位

                            5、^

                                     异或

                                     将两边的数字转换成二进制进行比较,每位上的数字,只有一个为1时,该位结果才为1,否则为0

                                     var num1=5;

                                     var num2=3;

 

                                     num1=num1^num2;

                                     5:101

                                     3:011

                                     -----

                                     r:110 => 6 (num1=6)

 

                                     num2=num2^num1;

                                     3:011

                                     6:110

                                     -------

                                     r:101 => 5 (num2=5)

 

                                     num1=num1^num2;

                                     6:110

                                     5:101

                                     --------

                                     r:011 => 3 (num1=3)

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

1、运算符

         1、赋值运算符

                   1、使用"="进行赋值

                            注意:

                                     赋值符号的左边,必须是变量

                                     const PI=3.14;(特殊)

                   2、扩展赋值表达式

                            +=,-=,*=,/=,%=,&=,|=,^=

                            ex:

                                     var num = 5;

                                     num+=3; ==> num=num+3;

 

                                     num-=5; ==> num=num-5;

                            语法:a+=b;==> a=a+b;

         2、字符串连接

                   运算符: +

         3、条件运算符(三目运算符、三元运算符)

                   单目运算符:!,++,--

                   双目运算符:+,-,*,/,%,&&,||,^,&,|,>,<

                   三目运算符:需要三个操作数/表达式

 

                   语法:

                            表达式1?表达式2:表达式3;

                            表达式1的运行结果应为boolean类型

                                     若表达式1为true,则整个表达式的值为表达式2的运算结果

                                     若表达式1为false,则整个表达式的值为表达式3的运算结果

 

                   条件表达式允许被嵌套:

                   判断考试成绩,如果考试成绩>=80,则输出成绩优秀,如果大于等于60分,输出成绩合格,否则输出不及格

2、函数

         1、什么是函数

                  没有函数的弊端:

                            1、事件中想执行JS脚本只能逐行编写

                            2、可重用性不高

                  

                   函数(function):可以被称之为方法(method),过程(procedure)

 

                   是一段预定义好,并可以被反复使用的代码块

                            1、预定义

                                     事先声明好的内容,不会马上被执行

                            2、反复使用

                                     提升代码的可重用性

                            3、代码块

                                     允许包含若干条的可执行语句

                   其实函数就是一段独立的功能体,同时也是一个功能完整的对象

         2、定义函数 

                   语法:

                            function 函数名(){

                                     //函数体(待执行的代码块)

                            }

 

                   调用函数:

                            在任意合法的JS脚本位置处都可以调用函数。

                            语法:函数名();

 

                   练习:

                            编写一个函数,名称为change,函数体内要求用户从弹框上录入两个数字,并且进行数字的交换,最后打印输出交换后的两个数字。通过一个 按钮 调用该函数

                   学过的函数:

                            console.log("World");

                            alert();

                            prompt();

                            document.write();

                            Number();

                            toString();

                            parseInt();

                            parseFloat();

                            charCodeAt();

                            isNaN();

         3、带参数函数的声明

                   1、参数

                            定义函数数,需要由外部传入到函数内部进行辅助运行的数据,称之为参数

                            console.log("Hello World");

                   2、声明带参函数

                            function 函数名(参数列表){

                                    

                            }

 

                            参数列表:由,隔开的参数名称的声明

                            function 函数名(参数1,参数2,参数3){

                                    

                            }

                            定义函数时定义的参数称之为"形参(形式参数)"

 

                            调用带参函数:

                                     函数名(参数列表);

                                     参数列表:由,隔开的具体参数值来组成的列表。

                                     调用函数时所传递的参数称之为"实参(实际参数)"

                  

                   var result=parseInt(35.5);

                   console.log(result);

         4、带返回值的函数声明

                   1、返回值:调用完函数后,由函数内部返回给函数调用处的一个值。

                   2、声明带返回值的函数      

                            function 函数名(参数列表){

                                     //函数体(语句)

                                     return 值;

                            }

                            注意:

                                     1、方法的返回值可以灵活添加,但最多只能有一个

                                     2、程序碰到return就会返回到函数调用处,所以,return后面的代码是不会被执行的。

         5、函数内调用函数

                   function 函数(参数列表){

                            /*调用函数*/

                            函数();

                   }

         6、变量的作用域

                   1、什么是作用域

                            作用域就是变量与函数的可访问范围,它控制着函数与变量的可见性与生命周期

 

                            JS中作用域可分为以下两种:

                            1、函数作用域,只在当前函数内可访问

                            2、全局作用域,一经定义,在代码中的任何位置都能访问

                   2、函数作用域中的变量

                            又称为 局部变量,只能在当前函数中访问,离开函数无法访问

                   3、全局作用域中的变量

                            又称为 全局变量,定义后,在JS的任何位置处都可以访问得到

                            定义方式:

                            1、独立于任何function的位置处

                            2、声明变量时不使用var关键字

                                     注意:必须先调用 变量所在的函数后,才可以继续使用全局函数

                   4、声明提前

                            JS程序在正式运行前,会将所有的var声明的变量和function声明的函数,预读到所在作用域的顶部

                            但是对变量的赋值还保留在原有位置。

                   5、按值传递

                            基本数据类型的数据,在作为实参传递时,实际上将参数的值复制了一份副本进行传递的。

         7、函数的作用域

                   也分为“全局作用域(全局函数)”以及“函数作用域(局部函数)”

 

                   全局函数:

                            声明在独立于任何function的位置处,位于JS的最外层

                   局部函数:

                            在一个函数内部定义的函数,就是局部函数

3、分支结构

         1、程序的流程控制

                   程序=数据结构 + 算法

 

                   任何复杂算法都有以下几种结构:

                   1、顺序结构

                   2、分支选择结构

                   3、循环结构

        

                   分支结构:

                            程序在运行过程中,在不同的条件下可以选择执行某些程序

 

                            1、当条件满足时运行某些语句

                                     当条件不满足时则不运行这些语句-if结构

                            2、当条件满足时运行某些语句

                                     当条件不满足时则运行另外一些语句-if...else 结构

         2、if结构

                   1、语法

                            if(条件){

                                     语句块

                            }

 

                            执行流程:

                                     1、判断条件的结果

                                               若值为true,则执行if语句块中的语句

                                               若值为false,则不执行if语句块中的语句

                   2、注意

                            1、条件应该是boolean类型的值或表达式

                                     如果条件不是boolean的话,则会进行自动转换

                                     以下几种情况会默认转换为 false

                                     if(0){}

                                     if(0.0){}

                                     if(NaN){}

                                     if(undefined){}

                                     if(""){}

                                     if(null){}

 

                                     ex:

                                               if(28){}

                                               if(2.8){}

                                               if("我帅吗"){}

                            2、if(条件)后的{}可以省略,但不推荐

                                     如果 省略了{} ,那么if结构只控制if下的第一条语句

         3、if...else 结构

                   1、语法

                            if(条件){

                                     //语句块1

                            }else{

                                     //语句块2

                            }

 

                            流程:

                                     1、判断条件

                                               若值为true,则执行语句块1

                                               (否则)若值为false,则执行语句块2

 

4、练习

         使用 if 结构 完成 克莱托指数判断

 

 

 

 

 

 

                                     

posted @ 2017-07-18 11:31  Hale.Proh  阅读(227)  评论(0编辑  收藏  举报