JavaScript:简称js,这是一种脚本编程语言,与可以来增强用户和html页面的交互过程,可以来控制html元素,让页面有一些动态的效果,增强用户的体验让用户的体验更佳。每一个浏览器都有JavaScript的解析引擎。

 

脚本语言:不需要编译,没有class文件,直接被浏览器解析执行。

 

   JS与html页面代码结合:

                    1 内部:直接设置<script>标签(任意位置)在其中写js语句

                    2 外部:创建一个.js结尾的文件,直接写js语句,随后在html内通过<script>的src属性导入

JS语句可以使用在html中的任意位置,但不能使用在css语句之内。

            JS语句可以在浏览器的页面中展示内容,但在JS语句中,不可以单独使用标

签,html标签需要与Document.write连用

 

JS基本语法:1数据类型:

                  1基本数据类型

                      *number 整数小数都是number,NaN(不是一个数字的类型,也无法转化)(NaN和自己比较一定是false,六亲不认)

                      *String 字符串(单个的字符也是字符串)””,’’都是字符串类型。

                      *boolean:布尔值 ture和false

                      *null:一个对象为空的占位符(一个是基本数据类型为空)

                            Null查看数据类型的时候有bug,会变成object。

                      *undefined:一个变量没定义值,就是是这个类型。

                  2引用数据类型

                     *对象

            2 变量:

                  JS中,定义变量时,数据类型可以统一使用 var。

                         Java是强类型语言,JS是弱类型语言。

                          强类型:指定了数据类型,存放其他的基本数据类型会报错

弱类型: 不指定数据类型,可以随意存放基本数据类型。

              3 运算:

和Java比较,JS中基本数据类型的转换非常灵活(例如,数字可以

和字符串比较,数字和字符串当布尔值使用),但在抛开数据类型,

在使用运算符的时候,JS和java基本一样

  重点: JS中的变量,基本数据类型在需要改变的时候,可以自动地变成其要求的类型。例如在参与运算的时候,和设置条件的时候while(“aaa”)

Java中string要转化为int,需要通过包装类,而js中完全不需要,一个加号就能解决(太不严谨了吧)

                     String转 number:纯数字的(“123”)会直接变成number的类型

                                     否则,会变成 NaN

*例”132”+1=133

                     String转boolean:非空的转ture ,空的转false

                                      *例 if(“a”)

                     Number转boolean:0和NaN是false 其他为ture

                    Null,undefined转boolean都是false

                     Boolean转number:false是0 ,ture是1

对象转boolean:全部为ture(天呐,对象都能直接转化)

           

 ===代表比较数据类型。

              4 逻辑语句

                  Swtch中 变量的限定可以是null也可以是undefi。

                  For循环中不要使用非number的数据参与运算,不然可能会出错

                  例 :var a=”0”; var b=1;

while(b<=100){a=a+b;b++}

          结果是会出错的,这说明了String不要随意直接转化为number参与复杂的运算。

           

JS的对象:在JS中是没有类的,只有对象,直接创建对象去调用其方法就好。

        1 function:方法(函数)对象,代表着可以用这个对象,去自定义方法。

                 *创建:function 对象名称(参数列表){方法体}

                 *方法:length  获取参数个数

                 *注意:参数类型可以省略 和返回值类型(都是var,没啥可写的)

                        对象的调用只和名字有关,与参数无关,参数不赋值,赋值太多了(两个参数,你传递了3个值)都可以。

                        说是方法,其实这就是一个对象,重名不会重载,只会被覆盖(也就是对对象重新定义)

                        有return 可以接收返回值

可以任意被改变,也可以存放多个不同数据类型的元素。

                 *创建  var arr = new Array(元素列表);

                        var arr = new Array(默认长度);

                        var arr = [元素列表];

                 *方法 join(参数)将数组中的元素,按照指定的分隔符分开,随后拼接

成一个String字符串,并返回。

push(参数) 向数组的末尾添加一个或更多元素,并返回新的长度。

Length 返回数组的长度

                 *注意 因为长度可以随意被改变,所以在创建的时候,可以不定义长度,也可以定义了长度不赋值,那么根据索引值去查询空值的时候,得到的就是undefined 。

        3 Date :日期对象,直接创建后打印对象,输出的是英文格式的时间

                 *创建  var a=new Date;

                 *方法   toLocaleString():返回本地格式的时间。

                         Gettime():获取当前时间的毫秒值。

        4 Math:数学对象,不用创建。直接通过Math.调用(和java中的静态方法一样,但本质不清楚)  

                  *创建 直接用math.方法   去调用方法

                  *方法   

                    random():返回 0 ~ 1 之间的随机数。 含0不含1

                    ceil(参数):对数进行上舍入。

                    floor(参数):对数进行下舍入。

                    round(参数):把数四舍五入为最接近的整数。

                    Pi: 获取圆周率。

         5 RegExp 正则表达式对象:用来测验字符串用的。

正则表达式:定义字符串的组成规则。

                            *特殊符号(简略写法)

\w单个字符的限定(大小写随意,限英文字符,

可以有数字,可以有下划线)

                                    \d  单个数字的限定(仅限数字)

                    正则表达式不仅仅要限制字符串的格式,还要限制个数

                              *量词符号:写在特殊符号后,限定数量

                         ?:0-1次     *:0或多次     +:1或多次

                {a,b}表a<=数量<=b      { ,b}最多b次        {a, } 最少a次

             *创建 var a=new RegExp(“正则表达式”) 参数可以是 \\w{2,5 }  (注意两个\\)

                   Var a=/ 正则表达式/           参数可以是  \w{2,5}

             *方法 text(参数) 参数是字符串,检验字符串是否符合规则,返回布尔值。

全局对象,方法很多,可以直接写方法名调用,不需要写Global

*创建 怎么可能需要创建

             *方法

                   encodeURI():    url编码

decodeURI():     url解码

encodeURIComponent():  url编码,编码的字符更多

 decodeURIComponent():   url   解码

以上四种方法是针对 网址信息(url)的中文,解码和编码的,下两种是符号也可以解码编码

Url:资源定位符,个人理解就是网址

parseInt():将字符串转为数字逐一判断每一个字符是否是数字,直到不是数字为止,将前边数字部分转为number

isNaN():判断一个值是否是NaN,因为NaN的数据类型无法通过比较去判断,NaN和谁比较都是false(包括自己,真牛逼)。

Eval ( )  :  将JS的字符串,作为真正的代码来执行。