• javaweb-javaScript(一)


    day02

    JavaScript

    1JavaScript的简介

    1JavaScript:是基于对象和事件驱动的语言,应用于客户端。

    * 基于对象:(万物皆对象!)

    ** java是面向对象,使用对象需要创建,可以自己创建,也可以使用预定义好的.

    ** js里自带了一些预定义好的对象,我们不能直接创建持久性对象.

    * 事件驱动:基于事情运行的,比如:单击一次鼠标,就是一个事件.

    * 客户端:一般指的是浏览器,也有支持浏览器页面的app

    2JavaScript的特点(三个)

    第一个:交互性

    ** 基于事件驱动的,与用户发生交互

    第二个:安全性

    ** JavaScript不能访问本地硬盘里面的文件(间接似乎也不能访问)

    第三个:跨平台性

    ** java里面跨平台,通过虚拟机实现的(jvm跨平台,一处编译到处运行)

    ** JavaScript跨平台,只要在系统里面安装了支持JavaScript的浏览器,可以运行JavaScript(然而一些老版本的IE并不支持javaScript)

    3JavaJavaScript区别(本质上没有半毛钱关系,除了名字,javaScript算是搭车了

    第一,javasun公司,现在是oracleJavaScript是网景(王景)公司

    第二,java是面向对象的语言,javas是基于对象的语言

    第三,java跨平台需要依靠虚拟机实现,JavaScript只需要浏览器可以运行

    第四,JavaScript弱类型语言,java是强类型的语言

    ** 比如在java里面定义一个变量int a=10,必须按照这个格式定义,不能int a=”10”; ** JavaScript里面定义变量都是使用一个关键字 var a = 10;  var b = "10"; var c = true;()

    第五,java运行先编译通过虚拟机运行,JavaScript直接使用浏览器运行

    4JavaScript由三部分组成

    第一部分:ECMAScript

    ** ECMA组织制定语句,语法

    第二部分:BOM

    ** broswer object  model:浏览器对象模型

    第三部分:DOM

    ** document object model:文档对象模型

    2jshtml的结合方式

    * 有两种结合方式

    第一种:使用html中的标签 <script type="text/javascript"> js代码 </script>

    ** 代码

     <script type="text/javascript">

    alert("aaa");

     </script>

    ** js的注释有两种(参考java,但是没有文档)

    //单行注释

    /*

    多行注释

    */

    第二种:使用html的标签,引入外部的js文件

    <script type="text/javascript" src="js文件的路径"></script>

    * 使用第二种方式的时候有两点注意

    注意一:不要在script标签里面写js代码了,不会执行

    注意二:结束script标签 </script>,不要在标签内结束

    * 代码

     <script type="text/javascript" src="1.js">

    //不要在script标签里面写js代码了,不会执行

    alert("aaa");

    </script>

    3js的变量声明和数据类型

    1)在js里面如何声明变量,都是使用一个关键字var

    * var a = 10;

    2js的原始类型

    * java里面有基本的数据类型?八个

    * js的原始类型有五个

    第一,string:字符串类型

    * var a = "abc";

    第二,number:数字类型

    * var b = 10;

    第三,boolean:布尔类型 true false

    * var c = true;

    第四,null

    * null是特殊的引用类型

    * 表示对象引用为空

    * 比如 var date = null;

    第五,undefined

    * 表示定义了一个变量,但是没有赋值

    * var a;没有赋值

    3typeof(变量的名称): 查看当前变量的类型

    * alert(typeof(a));

    4js的引用类型和类型转换

    * 引用对象

    ** Object 对象:所有对象都由这个对象继承而来

    ** Boolean 对象:Boolean 原始类型的引用类型

    ** Number 对象: Number 原始类型的引用类型

    * 类型转换

    ** 转换成字符串

    ** 转换成数字:parseInt() parseFloat()

    ** 强制类型转换

    Boolean(value) - 把给定的值转换成 Boolean 型;

    Number(value) - 把给定的值转换成数字(可以是整数或浮点数);

    String(value) - 把给定的值转换成字符串;

    5js的语句

    * java里面语句:if  switch while do-while for

    * java里面的switch语句,数据类型要求:是否支持string类型?在jdk1.7开始支持的

    1if 语句

    * 代码

    //if语句

    var a = 10;

    if(a==10) {

    alert("10");

    } else {

    alert("other");

    }

    2switch语句

    * java里面

    switch(a) {

    case 10:

     break;

    case 20:

     break;

    default:

    ....

    }

    * 代码

    var b = 5;

    switch(b) {

    case 4:

    alert("4");

    break;

    case 5:

    alert("5");

    break;

    default:

    alert("other");

    }

    3while循环语句

    * 代码

    //while语句

    var i = 4;

    while(i<6) {

    alert(i);

    i++;

    }

    4for循环语句

    * 代码

    //for语句

    for(var i=0;i<3;i++) {

    alert(i);

    }

    5)使用document.write()向页面输出内容

    * 可以向页面输出变量

    * 可以向页面直接输出html代码

    ** document.write(i);

    document.write("<br/>");

    6、练习:向页面输出99乘法表

    1document.write可以直接向页面输出html代码

    2html中的属性和属性值之间可以使用双引号,也可以使用单引号

    3)代码

    document.write("<table border='1' bordercolor='blue'>");

    //循环9

    for(var i=1;i<=9;i++) {

    document.write("<tr>");

    //循环每行的部分

    for(var j=1;j<=i;j++) {

    document.write("<td>");

    //向页面输出内容

    document.write(j+"*"+i+"="+i*j);

    document.write("</td>");

    }

    //document.write("<br/>");

    document.write("</tr>");

    }

    document.write("</table>");

    7js的运算符

    1)算术运算符

    + - * /....

    2)赋值运算符

    +=含义: x+=y 相当于 x=x+y

    3)比较运算符

    ==:表示条件的判断,如果是=,表示赋值

    4)逻辑运算符

    &&  ||  !

    5js的运算符和java不同的内容

    第一个:js里面不区分整数和小数

    * 比如 var a = 123/1000*1000,如果在java里面结果是 0

    * js里面的结果:123

    第二个:字符串的相加和相减操作

    * 字符串相加是字符串的拼接操作,字符串相减是真正的相减运算,如果字符串不是数字提示NaN

    * //字符串的相加和相减

    var b = "10";

    document.write(b+1); //字符串拼接

    document.write("<hr/>");

    document.write(b-1); //真正相减的运算

    document.write("<hr/>");

    var c = "a";

    document.write(c-1); //NaN

    第三个:boolean类型相加和相减的操作

    * 如果布尔类型值是true,把类型当成1运算;如果布尔类型值是false,把类型当成0运算

    //布尔类型相加和相减操作

    var flag = true;

    document.write(flag+1); // 2,boolean类型是true时候,把类型当成1运算

    document.write("<hr/>");

    var flag1 = false;

    document.write(flag1+1); //1,boolean类型是false时候,把类型当成0运算

    第四个:=====区别

    * ==比较的是值

    * === 比较的是值和类型(这个好用)

    * 代码

    var mm = "10";

    if(mm==="10") {

    alert("10");

    } else {

    alert("other");

    }

    //具体的方法可以查找帮助文档写的很清楚

    8js的数组

    * 什么是数组:定义一个变量只能存一个值,想要存多个值,可以使用数组进行存储

    * js里面定义数组的方式

    第一个:var arr1 = [];

    第二个:var arr2 = ["10",10,true]; //可以写任意的类型

    第三种:var arr3 = new Array(3);

    ** 表示定义数组名称是arr3,数组的长度是3

    第四种:var arr4 = new Array(4,5,6);

    ** 表示定义数组名称是arr4,数组里面的值4 5 6

    * 数组里面的属性:查看数组的长度 length

    * 获取数组里面的值

    ** 遍历数组得到里面的值

    //遍历

    for(var i=0;i<arr3.length;i++) {

    var a = arr3[i];

    document.write(a);

    document.write("<br/>");

    }

    * 数组的长度:在js里面数组的长度可变的

    ** 数组的长度是最大的下标+1,之间如果没有赋值直接默认是空字符串

    9jsstring对象

    1)字符串对象

    * 创建字符串:var a = "abc"; var b = new String("bb");

    2)属性 length 字符串的长度

    3)方法

    第一类:与html相关的方法(设置字符串的样式的方法)

    = bold() 使用粗体显示字符串。

    ** document.write(a.bold());

    = fontcolor() 使用指定的颜色来显示字符串。

    ** document.write(a.fontcolor("red"));

    = fontsize() 使用指定的尺寸来显示字符串。

    ** document.write(a.fontsize(7));

    = link() 将字符串显示为链接

    ** document.write(a.link("04-练习99乘法表.html"));

    第二类:与java相似的方法(在java里面也有类似的方法)

    = charAt() 返回在指定位置的字符。 如果位置不存在字符,返回空字符串""

    ** var str = "abcdefg";

    document.write(str.charAt(1));

    = concat() 连接字符串

    ** document.write(str.concat(str1));

    = indexOf() 检索字符串,得到检索的字符的位置,如果没有找到返回-1

    ** var str2 = "ABCD";

    document.write(str2.indexOf("R"));

    = split() 把字符串分割为字符串数组

    ** var str3 = "a-b-c";

    var arr = str3.split("-");

    document.write("length: "+arr.length);

    = substr() 从起始索引号提取字符串中指定数目的字符。

    = substring() 提取字符串中两个指定的索引号之间的字符

    ** var str4 = "MARYJACKLUCY";

    document.write(str4.substr(2,3));  

    //RYJ, 第一个参数表示从哪个位置开始,第二个参数表示向后取几个位置的值

    document.write("<br/>");

    document.write(str4.substring(2,3));

    //R ,第一个参数表示从哪个位置开始,第二个参数到哪个位置结束(不包含这个位置) [2,3)

    10jsArray对象

    1)创建数组

    2)属性

    * length 设置或返回数组中元素的数目

    ** //length属性

    var arr1 = new Array(4,5,6);

    document.write(arr1.length);

    3)方法

    = concat():连接数组

    ** var arr2 = [6,7,8];

    document.write(arr1.concat(arr2));

    = join():把数组根据指定字符进行分割

    ** var arr3 = new Array(3);

    arr3[0] = "mary";

    arr3[1] = "jack";

    arr3[2] = "lucy";

    document.write(arr3);

    document.write("<br/>");

    document.write(arr3.join("-"));

    = pop() 删除并返回数组的最后一个元素

    ** var arr4 = ["aa","bb","cc"];

    //输出数组的原始的值

    document.write("old: "+arr4);

    //输出执行pop方法之后的返回值

    document.write("<br/>");

    document.write("return: "+arr4.pop());

    //输出执行pop方法之后新的数组内容

    document.write("<br/>");

    document.write("new: "+arr4);

    = push() 向数组的末尾添加元素,并返回新的长度

    ** var arr5 = ["zhangsan","lisi","wangwu"];

            //输出数组的原始的值

    document.write("old: "+arr5)

    document.write("<br/>");

    //输出执行push()方法之后的返回值

    document.write("return: "+arr5.push("lucy"));

    //输出执行push()方法之后新的数组内容

    document.write("<br/>");

    document.write("new: "+arr5);

    ** 向数组里面使用push方法添加一个数组

    document.write("<hr/>");

    var arr6 = ["AAA","BBB"];

    var arr7 = ["CCC","DDD"];

    //输出数组arr6的原始的值

    document.write("old: "+arr6)

    //输出执行push()方法之后的返回值

    document.write("<br/>");

    document.write("return: "+arr6.push(arr7));

    //输出执行push()方法之后新的数组内容

    document.write("<br/>");

    document.write("new: "+arr6);

    //遍历数组

    for(var i=0;i<arr6.length;i++) {

    alert(arr6[i]);

    }

    = reverse() 颠倒数组中元素的顺序

    ** var arr8 = ["zhaoliu","wanger","niuqi"];

    document.write(arr8);

    document.write("<br/>");

    document.write(arr8.reverse());

    11jsMath对象

    1)进行数学运算,在Math对象里面的方法,直接使用Math.方法名称进行调用

    2)方法

    = ceil(x) 对一个数进行上舍入。

    = floor(x) 对一个数进行下舍入。

    = round(x) 把一个数四舍五入为最接近的整数

    = random() 返回 0 ~ 1 之间的随机数

    ** 代码

    var a = 10.2;

    //ceil(x) 对一个数进行上舍入。

    document.write(Math.ceil(a)); //11

    document.write("<hr/>");

    //floor(x) 对一个数进行下舍入。

    document.write(Math.floor(a));

    document.write("<hr/>");

    //round(x) 把一个数四舍五入为最接近的整数

    document.write(Math.round(a));

    document.write("<hr/>");

    //random() 返回 0 ~ 1 之间的随机数

    document.write(Math.random());

    //生成0-9之间的随机数 0.0 -- 0.9之间的值

    document.write("<hr/>");

    document.write(Math.floor(Math.random()*10));

    12jsDate对象

    1)进行日期操作的对象

    2)使用Date对象,new Date();

    3)方法

    = toLocaleString() 根据本地时间格式,把 Date 对象转换为字符串。

    ** //得到当前的时间

    var date = new Date();

    document.write(date.toLocaleString());

    = 得到当前的年 getFullYear() Date 对象以四位数字返回年份

    ** document.write(date.getFullYear());

    = 得到当前的月 getMonth() Date 对象返回月份 (0 ~ 11)

    ** document.write(date.getMonth()+1);

    = 得到当前的星期 getDay() Date 对象返回一周中的某一天 (0 ~ 6)

    ** 如果当前的星期是星期日,返回的是0

    ** document.write(date.getDay())

    = 得到当前的日 getDate() Date 对象返回一个月中的某一天 (1 ~ 31)

    = 得到当前的小时  getHours()

    = 得到当前的分   getMinutes()

    = 得到当前的秒 getSeconds()

    ** document.write(date.getHours());

    document.write("<br/>");

    document.write(date.getMinutes());

    document.write("<br/>");

    document.write(date.getSeconds());

    = 得到毫秒数 getTime() 返回 1970 1 1 日至今的毫秒数

    13jsRegRxp对象

     (1RegExp 对象表示正则表达式

     (2)正则表达式:规定字符串出现的规范

     (3)使用:new RegExp("正则表达式")

        (4)方法:

     * test() 检索字符串中指定的值。如果存在匹配的字符返回 true,如果不存在匹配的字符返回 false

     (5)代码

     //创建正则表达式对象

             var reg = new RegExp("[a]");

             //创建一个字符串

     var name = "lisi";

        //使用正则对象匹配字符串

       var flag = reg.test(name);

     document.write(flag);

    14jsbom对象

     (1script标签放置位置

     * 建议放到</body>后面

     * html的解析是从上到下进行解析的,如果在head里面就获取输入项里面的值,因为还没有解析到

     输入项,所以肯定得不到值。

     (2)什么是bom:浏览器对象模型

     第一个:navigator

    * 浏览器的信息

     第二个:screen

    * 屏幕的信息

     第三个: history

    * 访问地址的历史信息

     第四个: location

    * 设置url

    * href 设置或返回完整的 URL

     第五个: window***

     * window对象是窗口对象,是顶层对象

     * 方法

     setInterval("执行的js代码",毫秒数) 在指定的时间内,重复执行js代码

    ** 有两个参数

    *** 第一个参数要执行的js代码(js的方法),第二个参数是时间(毫秒数)

    ** 代码

    setInterval("alert('setinterval');",3000);

     setTimeout("执行的js代码",毫秒数) 在指定的时间之后,执行js代码,执行一次

    ** 有两个参数

    *** 第一个参数要执行js代码(js的方法),第二个参数是时间(毫秒数)

    ** 代码

    setTimeout("alert('settimeout');",3000);

     clearInterval(id) 取消由 setInterval() 设置的 timeout

     clearTimeout(id) 取消由setTimeout() 方法设置的 timeout

    15js的全局变量和局部变量

     * 回顾:在java里面成员变量

     (1)全局变量

     * js里面,如果在一个script标签里面定义变量,在页面中的其他script标签里面都可以使用

     (2)局部变量

     * js的方法里面定义一个变量,这个变量只能在方法里面使用。

     (3)浏览器里面自带的调试工具

    浏览器三巨头(现在360市场份额也很大,它使用的是IE内核)

     * ie浏览器:点击键盘上f12,在页面下面出现一个条,点击控制台,出现调试的信息。

     * 火狐浏览器:点击键盘上f12,在下面出现一个条,点击控制台,出现调试的信息。

     ** 火狐浏览器里面需要安装firebug插件

     * 谷歌浏览器:点击键盘上的f12,在下面出现一个条,点击console,出现调试的信息。

    16js的全局函数

     (1)不属于任何对象,可以使函数

     (2)主要的函数

     eval(): 把字符串当成js代码执行

     ** var str = "alert('123456');";

     //alert(str);

     eval(str);

     isNaN() 检查某个值是否是数字

     ** 如果是数字返回 false,如果不是一个数字返回 true

     parseInt() 解析一个字符串并返回一个整数

     ** var str1 = "123";

     alert(parseInt(str1)+1);

     encodeURI() 把字符串编码为 URI

     ** var str2 = "abc测试中文";

     var encodestr2 = encodeURI(str2);

     document.write(str2);

     document.write("<br/>");

     document.write(encodestr2);

     decodeURI() 解码某个编码的 URI

     ** var decodestr2 = decodeURI(encodestr2);

    代码:,文中已经有很多演示示例,直接复制进html中就可以运行了

  • 相关阅读:
    45、linux shell命令,ldconfig
    47、linux shell,ln链接
    43、linux shell命令,chmod
    39、linux 进程管理
    46、linux shell命令,chkconfig
    40、linux shell常用函数mkdir,rmdir,mount
    26、linux 几个C函数,nanosleep,lstat,unlink
    38、linux shell常用函数,nice
    44、linux shell命令,ldd
    41、linux shell常用函数,lsof
  • 原文地址:https://www.cnblogs.com/adventurer/p/5503430.html
Copyright © 2020-2023  润新知