JS(笔记)

1.为什么学习JS

1.实现动态效果
​
2.减轻服务器压力

2.JS定义

JavaScript是一种基于对象和事件驱动的、并具有安全性能的脚本语言。
1.js是一种基于对象的语言(面向对象)
2.js一种弱语言(很重要!)<解释>java语言: a = 123;//编译报错--》java是强语言(格式严格规范)
js语言:a = 123; a = "我是中国人";//没有任何问题--》js是弱语言--(格式很多情况下没有规范).
3.JS是一种客户端脚本语言,可以在浏览器之上单独运行的语言。

3.JS组成

1.ECMAScript
2.DOM
3.BOM

4.JS基本结构-HelloWorld

<script type="text/javascript">
    document.write("初学JavaScript");
    document.write("<h1>Hello,JavaScript</h1>");
    //window.document.write("<h1>Hello,JavaScript</h1>");(这里省略了一个window)    //document.document.write("<h1>Hello,JavaScript</h1>");(document是奖字符串贴在网页文本上来显示的)
    //(一般window可省略,document不可省略)
</script>

5.JS执行原理

6.JS引用方式

6.1内部引入

<script type="text/javascript">
</script>

6.2外部引入(目前来说是最重要的)

<script src="" type="text/javascript"></script>
解析:现在js文件夹下创建——文件名.js  文本写上 documen write(“HellowWord”)
     在html页面内引入,代码为<script src="" type="text/javascript"></script>

6.3标签内部引入(调试很重要)

<input type="button" value="点击" οnclick="javascript:alert('呵呵');"/>
解析:如果出现了定义上或者是其他的错误,在浏览器上用F12再进行代码触发后可以及时的去发现问题。

7.JS核心语法

7.1变量

(1)先声明变量再赋值

var width;
width = 5;
解析:var a="字符串";
    alert("第一次打印"+typeof(a));<第一次打印的是String类型>
    var a=123;
    alert("第二次打印变量a"+typeof(a));<第二次打印的是anumber类型>
    <typeof打印在标签上的是类型,而不是变量的值>

(2)同时声明和赋值变量(企业专用)

var width = 5;

(3)不声明直接赋值(不推荐)

width=5;

7.2数据类型

(1) undefined

变量被声明后,但未被赋值

<script type="text/javascript">
            var width;
            alert(width);
</script>
解析:结果是undefined

(2) null

<script type="text/javascript">
            var width;
            alert(width == null);
</script>
解析:结果是ture

(3) number

true或false

<script type="text/javascript">
             var a = 23;
             var b = 23.0;
             alert(typeof(a));
             alert(typeof(b));
</script>
解析:结果是anumber

(4) boolean

true或false

<script type="text/javascript">
             alert(1 == 2);
             alert(1 == 1);
</script>
解析:结果是true或false

(5) string

用单引号或双引号来声明的字符串

<script type="text/javascript">
              var s1 = "hehe";
              var s2 = 'haha';
              alert(typeof(s1));
              alert(typeof(s2));
</script>
解析:结果是String

7.3语法详解

(1)string

alert(s1.length);<显示的是长度>
alert(s1.charAt(1));<返回的是一个字符,脚标从0开始>
alert(s1.indexOf("JavaScript"));<从定义的里面检索>
alert(s1.substring(3,6));<从第三个开始取到第六个,第六个取不到,只能取前一个>
alert(s1.split(" "));<间隔>

(2)数组

A.创建数组

第一种方式

var array = new Array(5);
array[0] = 2;
array[1] = 3;
array[2] = "32";
array[7]=23;
alert(array.length);
解析:遍历长度的术后会出现8个,超出了范围,前面的定义可以当放屁,JS就是这么的随意。

第二种方式

var array = [];
array.push(1);
array.push(3);
array.push(9);

B.遍历数组

第一种方式(传统for循环)

for(var i = 0;i<array.length;i++){
    document.write(array[i]);
}

第二种方式(增强for循环)

for(var o in array){
    document.write(array[o]);
}

C.数组常用属性方法

属性:length
方法:join(),push()

7.4企业常用控制语句

if else语句
for语句

7.5注释

alert("恭喜你!注册会员成功"); //在页同上弹出注册会员成功的提示框

7.6输入/输出

alert()
代码案例:alert("你会Java吗?如果会请入职,如果不会请离职!!!");
​
var flag = prompt("提示信息","输入框的默认信息");
alert(flag);
代码案例:    var a = prompt("你会Java吗?","会")
    if(a<给个返回值>){
        alert("请入职!!!");
    }else{
        alert("请面试下一家公司。");
    }
代码案例:var str=parseInt(“123”);
         alert(isNaN(str));
         //解析:是否是非数字  运行为false
         //注意:双重否定表肯定
代码案例: var str=parseInt("123abc");
         alert(str);
         解析:输出的一定是数字

7.7函数

(1)常用系统函数

parseInt("86")//将字符串“86”转化为了number类型<在JS中只要看到parseInt都会转换成Int类型>
parseFloat("34.45")
isNaN():用于检查其参数是否是非数字
代码解析:var str1=parseInt("86");//string类型
         var str2=3;
         var sum=str1+str2;//如果字符串那里不加parseInt进行转换则会报错
         alert(sum);

(2)自定义函数

A.有名函数(用的较多)

function haha(){
    alert(HellowWord);
}
haha();
<body>
    <input type="button" value="点击" οnclick="haha()"/>
</body>
​
​

B.匿名函数

 var a = function(){
     alert(234);
 }
 a();

8.调试工具

<script type="text/javascript">
var i=0;
for(i=0;i<=5;i++){
    if(i==3){
         break;
     }
  document.write("这个数字是:"+i+"<br/>");
}
</script>

9.拓展

特殊案例:
<script type="text/javascript">
       var a = [];
       if(a instanceof Array){
           alert("数组类型");
       }
</script>

               第二章

1.BOM的定义

BOM:浏览器对象模型(Browser Object Model)
BOM提供了独立于内容的、可以与浏览器窗口进行互动的对象结构

2.BOM的组成部分

3.window对象常用方法

3.1 winow.confirm()

显示一个带有提示信息、确定和取消按钮的对话框 
var flag = confirm("确认要删除此信息吗?");
if(flag){
    alert("删除成功");
}else{
    alert("你取消了删除");
}
​
    var flag=window.confirm("你确认启明是架构吗?");
    if(flag){
        window.alert("请叫我周架构!!!");
    }else{
        window.alert("请叫我周开发!!!");
    }

3.2 winow.open()

打开一个新的浏览器窗口,加载给定 URL 所指定的文档
<html>
    <head>
        <meta charset="UTF-8">
        <title>333</title>
        <script type="text/javascript">
            function ab(){
                window.open("demo03.html"); 
            }           
        </script>
    </head>
    <body>      
        <input type="button" οnclick="ab()" value="触发"/>
    </body>
</html>
==============================================================
​
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
        demo03.html.....
    </body>
</html>
​

3.3 winow.prompt()

显示可提示用户输入的对话框
代码案例:
   function a(){
        var flag=window.prompt("柳岩,在吗?");
        if(flag=="我在"){
            alert("我在");
        }else{
            alert("我去找杨幂!");
        }
    }

3.4 winow.alert()

显示带有一个提示信息和一个确定按钮的警示框 
代码案例:   function a(){
        var flag=window.alert("柳岩,在吗?");
    }

4.history对象<对历史记录进行前进和后退的操作>

back() 加载 history 对象列表中的前一个URL,等价于history.go(-1) =>"浏览器后退"
forward() 加载 history 对象列表中的下一个URL,等价于history.go(1)=>"浏览器前进"
go() 加载 history 对象列表中的某个具体URL

案例:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
        demo05.html...
        <a href="javascript:window.history.back()">返回</a>
        <a href="javascript:window.history.go(-1)">返回</a>
    </body>
</html>
​

5.location对象<跳转>

设置或返回完整的URL
​
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
        <a href="javascript:window.location.href='demo05.html'">触发</a>
    </body>
</html>

6.document对象

6.1 常用属性referrer (返回载入当前文档的URL)

判断页面是否是链接进入
​
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <script type="text/javascript">
            var url = document.referrer;
            if(url==""){
                alert("不是跳转进来的。");  
            }else{
                alert("跳转进来的。");
            }
        </script>
    </head>
    <body>
        demo07.html...
    </body>
</html>

6.2常用方法

getElementById() 返回对拥有指定id的第一个对象的引用
getElementsByName() 返回带有指定名称的对象的集合
getElementsByTagName() 返回带有指定标签名的对象的集合

案例:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>菜鸟教程(runoob.com)</title>
</head>
<body>
​
<p name="a">单击按钮来改变这一段中的文本。</p>
<p name="a">单击按钮来改变这一段中的文本。</p>
<p  >单击按钮来改变这一段中的文本。</p>
<button οnclick="myFunction()">点我</button>
<script>
function myFunction(){
    alert(document.getElementsByTagName("p").length);
};
​
</script>
​
</body>
</html>

6.3全选功能(极其重要!)

案例:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <script type="text/javascript">
            function checkFather(){              
                var father = document.getElementById("father");
                var sons = document.getElementsByName("son");
                for(var i=0;i<sons.length;i++){
                    sons[i].checked = father.checked;
                }               
            }
            
            function checkSon(){
                var father = document.getElementById("father");
                var sons = document.getElementsByName("son");
                //定义一个变量,设置为标记
                var flag = true;
                //遍历儿子的DOM列表元素
                for(var i=0;i<sons.length;i++){
                     //如果儿子的DOM列表中有一个未打勾
                    if(sons[i].checked==false){
                    //flag设置为false<将父级元素设置为未打勾的状态>
                        flag = false;
                        //但凡子级DOM元素列表中有一个未打勾的状态,父级元素直接为未打勾状态,并且循环遍历直接退出
                        break;
                    }
                }
                //如果儿子DOM列表元素中都是打勾的状态,那么父级元素的列表也为打勾状态
                father.checked=flag;
            }
        </script>
    </head>
    <body>
        全选:<input type="checkbox" id="father" οnclick="checkFather()" /><br />
        <input type="checkbox" name="son" οnclick="checkSon()"/><br />
        <input type="checkbox" name="son" οnclick="checkSon()" /><br />
        <input type="checkbox" name="son" οnclick="checkSon()" /><br />
        <input type="checkbox" name="son" οnclick="checkSon()" /><br />
         
    </body>
</html>
​

7.JavaScript内置对象

7.1 Date对象

var  date=new Date();   //返回当前日期和时间
getHours() 返回 Date 对象的小时数,其值介于023之间
getMinutes() 返回 Date 对象的分钟数,其值介于059之间
getSeconds() 返回 Date 对象的秒数,其值介于059之间
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Insert title here</title>
    <script type="text/javascript">
         
            var date = new Date();
            var hh = date.getHours();
            var mm = date.getMinutes();
            var ss = date.getSeconds();
            alert("时:"+hh+"分:"+mm+"秒"+ss);
    </script>
    </head>
    <body>
         
         
    </body>
</html>

7.2 Math对象

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <script type="text/javascript">
        //向上取整
            document.write(Math.ceil(25.1)+" ");
            //向下取整
            document.write(Math.floor(26.9)+" ");
            //四舍五入
            document.write(Math.round(24.5)+" ");
            //随机数
            document.write(Math.random());
        </script>
    </head>
    <body>
    </body>
</html>

上一篇:VMware workstation 虚拟机中安装乌班图及其兼容性问题


下一篇:matlab 使用札记