前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JavaScript基础1

JavaScript基础1

作者头像
汤高
发布2018-01-11 17:28:49
9420
发布2018-01-11 17:28:49
举报
文章被收录于专栏:积累沉淀积累沉淀

什么是Javascript? Javascript是一种基于对象和事件驱动的, 与平台无关的 ,具有安全性的 ,弱类型的脚本语言。 为什么要用? 使用它的目的是与HTML超文本标记语言、Java 脚本语言(Java小程序)一起实现在一个Web页面中链接多个对象,与Web客户交互作用。从而可以开发客户端的应用程序等。它是通过嵌入或调入在标准的HTML语言中实现的。它的出现弥补了HTML语言的缺陷,它是Java与HTML折衷的选择。

Javascript的特点: 1.是一种脚本编写语言 JavaScript是一种脚本语言,它采用小程序段的方式实现编程。像其它脚本语言一样,JavaScript同样已是一种解释性语言,它提供了一个易的开发过程。 它的基本结构形式与C、C++、VB、Delphi十分类似。但它不像这些语言一样,需要先编译,而是在程序运行过程中被逐行地解释。它与HTML标识结合在一起,从而方便用户的使用操作。 2.基于对象的语言。 JavaScript是一种基于对象的语言,同时以可以看作一种面向对象的。这意味着它能运用自己已经创建的对象。因此,许多功能可以来自于脚本环境中对象的方法与脚本的相互作用。 3.简单性 JavaScript的简单性主要体现在:首先它是一种基于Java基本语句和控制流之上的简单而紧凑的设计, 从而对于学习Java是一种非常好的过渡。其次它的变量类型是采用弱类型,并未使用严格的数据类型。 4.安全性 JavaScript是一种安全性语言,它不允许访问本地的硬盘,并不能将数据存入到服务器上,不允许对网络文档进行修改和删除,只能通过浏览器实现信息浏览或动态交互。从而有效地防止数据的丢失。 5.动态性的 JavaScript是动态的,它可以直接对用户或客户输入做出响应,无须经过Web服务程序。它对用户的反映响应,是采用以事件驱动的方式进行的。所谓事件驱动,就是指在主页(Home Page)中执行了某种操作所产生的动作,就称为“事件”(Event)。比如按下鼠标、移动窗口、选择菜单等都可以视为事件。当事件发生后,可能会引起相应的事件响应。 6.跨平台性 JavaScript是依赖于浏览器本身,与操作环境无关,只要能运行浏览器的计算机,并支持JavaScript的浏览器就可正确执行。从而实现了“编写一次,走遍天下”的梦想。

JavaScript学习内容: 1.script 2.DOM:文档对象模型(操作HTML CSS代码) 3.BOM:浏览器对象模型(操作浏览器)

JavaScript运行顺序 从html页面的最上面向下运行的. 最佳实践: 将html,css写前面,将js代码写后面. 浏览器加载顺序: 1.HTML解析完成 2.外部脚本和样式加载 3.脚本在文档内解析并执行 4.HTML DOM完全构建 5.图片和外部内容的加载 6.网页完成加载

代码语言:javascript
复制
   js可以放在页面的任何地方,不过建议放在head或body中。
示例:
代码语言:javascript
复制
<script>
alert("你好1");
</script>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>js</title>
<script>
    alert("你好2");
</script>
</head>

<body>
    <p>中国</p>
    <!--
        JS(Javascript):基于对象的、事件驱动的、与平台无关的(运行环境由浏览器提供)、弱类型的脚本语言

        强类型和弱类型
            在声明变量时,是否需要指定变量的数据类型

       它的执行顺序是从上往下
    -->
    <script>
        alert("你好3");
    </script>

    <h1>中华人民共和国</h1>
</body>
<script>
    alert("你好4");
</script>
</html>
<script>
    alert("你好5");
</script>

javascript如何加入到html中: a. // 页面内的js代码. b. 使用 //引入外部js文件. c.基于事件的写法: 实例:

代码语言:javascript
复制
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>无标题文档</title>
<!-- 引入外部的js -->
<script src="外部定义的一个(自己写一个js代码).js"></script>

<!--内部js-->
<script>
    var a;
    document.write("<br />"+typeof(a)+"<br />"); //undefined

    a=10; //给a赋值为一个整形数据10
    document.write(typeof(a)+"<br />"); //number

    a="string"; //给a赋值为一个字符串string
    document.write(typeof(a)+"<br />"); //string

    a=true; //给a赋值为一个布尔类型true
    document.write(typeof(a)+"<br />"); //boolean

    //弱类型的语言,变量的数据类型在给它赋值时,才能确定,并且会随着赋值的变化而变化

</script>
</head>

<body>

</body>
</html>

javaScript是一种弱类型的语法: Java中 int x 强类型 js中 var x //var 不知道什么类型 >>弱类型 类型: undefined: 未定义 number: 数字 string: 字符串 boolean: 布尔型 实例:

代码语言:javascript
复制
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>==和===</title>
<script>
    var i=10;
    var j=10;

    document.write( i==j); //true 
    document.write("<br />");

    document.write( i===j); //true
    document.write("<br />");

    var k="10";

    document.write( i==k); //true
    document.write("<br />");

    document.write( i===k); //false
    document.write("<br />");

    //==:值相等就行
    //===:除值相等外,数据类型也必须相等
</script>
</head>

<body>
</body>
</html>

var声明变量时的规则: 变量的作用域: a. 在函数外用var或在函数内不用var声明的变量为全局 b. 在函数内用var声明的是局部的 c. 在函数的参数中定义的变量为局部的,并且函数的参数不能加 var定义. 实例:

代码语言:javascript
复制
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>全局变量和局部变量</title>
<script>
    var a=10; 


    function add(){
        var x=20;  
        alert(x+a); 
    }
    add();      //30


    m=30; 

    function add1(){
        var x=20;
        y=30; 
        alert(x+y+a+m);   //90
    }

    add1();

    function add2(){
        alert(y+a);
    }

    add2();    //40



    function add3(z){   // 局部
        z=90;  
        alert(y+z);    //120
    }

    add3();

    alert(z);
</script>
</head>
<body>
</body>
</html>

实例:

代码语言:javascript
复制
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>变量的作用域</title>
<script>
    function show(){
        for(var i=1;i<10;i++){
            document.write(i+"<br />"); //1-9
        }

        document.write(i+"<br />");  //10

        var i;

        document.write(i+"<br />"); //10

        i="string";

        document.write(i+"<br />"); //string
    }

    show();

    //说明在js中没有块级作用域,即使你重新声明,如果没有重新赋值,则还是会保留原有的值
</script>
</head>

<body>
</body>
</html>

js中的函数的定义语法: a. function 函数名 (参数列表){ return 值; / 无返回值, 直接写 代码 } b. 函数名=function(参数列表){ return 值; / 无返回值, 直接写 代码 }

调用: a. 函数名(参数列表); b. 值变量=function(参数列表){ return 值; / 无返回值, 直接写 代码 }(); 实例:

代码语言:javascript
复制
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>函数</title>
<script type="text/javascript">

    function add(x,y){
        return x+y;
    }


    add=function(x,y){
        return x+y;
    } 

    alert( add );   //   输出一个字符串  function类型( java的class)  "function(x,y){      return x+y; }"

    alert(   eval(    '('+  add+'(3,2) ' +')'    )      );

    alert( add(3,4) );//7


    add1=function(x,y){
        return x+y;
    }(3,4); 

    alert( add1 ); //7

</script>
</head>

<body>
</body>
</html>

实例:

代码语言:javascript
复制
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>无标题文档</title>
<script>
    var a;
    a=10;
    document.write(typeof(a)+"<br />");

    a=true;
    document.write(typeof(a)+"<br />");
</script>

<script>
    var x=1;

    function add(a){
        y=2;  //全局的
        a=3; //局部的
        alert(x+y+a); //6
    }

    add();

    alert(a); //true 引用上面那个script中的全局变量a


    function add1(){
        alert(x+y+a); //1+2+1=4   由于此时a=true,对应的值为1  (false=0)
    }

    add1();

</script>

</head>

<body>
</body>
</html>

注意:js中的方法中没有重载这个概念, 即如果有多个函数,函数名相同,参数不同,最后一个方法会覆盖前面的方法 . 实例:

代码语言:javascript
复制
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>函数</title>

<script>
    function add(x,y){
        return x+y;
    }

    function add(x,y,z){
        return x+y+z;
    }

    function add(x,y,z,m){
        return x+y+z+m;
    }

    function add(x){
        return x;
    }

    document.write( add(3,4) +"<br />"); //调用函数     3
    document.write( add(3,4,5) +"<br />"); //调用函数  3
    document.write( add(3,4,5,6) +"<br />"); //调用函数  3
    document.write( add(3,4,5,6,7) +"<br />"); //调用函数 3
</script>
</head>

<body>
</body>
    </html>
代码语言:javascript
复制
结果都是3
改进:
代码语言:javascript
复制
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>无标题文档</title>
<script>
    /*add(x,y):说明此函数期望获的两个参数*/
    function add(x,y){
//alert(arguments.length);  //内置对象arguments是用来获取此函数实际接收到的参数
        var num=0;
        for(var i=0;i<arguments.length;i++){
            num=num+arguments[i];
        }
        return num;
    }
document.write( add(3) +"<br />"); //调用函数       
document.write( add(3,4) +"<br />"); //调用函数    
document.write( add(3,4,5) +"<br />"); //调用函数 
document.write( add(3,4,5,6) +"<br />"); //调用函数  
document.write( add(3,4,5,6,7) +"<br />"); //调用函数

/*在js中调用方法是根据名字来的,与后面的参数个数无关,如果方法同名,则后面的会把前面的覆盖*/




</script>
</head>

<body>
</body>
</html>

结果: 3 7 12 18 25 js中的常见函数 eval() 计算javascript代码串 isNaN() 检测一个值是否是非数字的值 parseInt() 将字符串转换为整数,转换第一个无效字符之前的字符串 parseFloat() 将字符串转换为数字,转换第一个无效字符之前的字符串 alert() 弹出对话框显示消息 confirm() 用对话框询问一个回答为是或否的问题 prompt() 弹出对话框,请求用户输入一个字符串 实例:

代码语言:javascript
复制
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>强制类型转换</title>
<script>
    var iNum=10;
    var sNum = iNum.toString(8); //将10转换为8进制
    var iNum1= parseInt("12.6");
    var iNum2= parseInt("hello");
    var iNum3= parseInt("123world");
    var fNum4= parseFloat("25.12.6");
    var Num= Number("123world");
    var b1 = Boolean("");

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

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

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

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

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

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

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

    document.write(isNaN("12")); //false

    //带一个确定按钮的提示框
    alert("用户名或密码错误...");

    //带确定和取消按钮的选择框
    confirm("您确定要删除吗?"); //选择确定则返回true,选择取消则返回false

    //带一个文本输入框的提示框
    prompt("请输入您的安全密码","123"); 

</script>
</head>
<body>
</body>
</html>
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2015-07-14 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云开发 CloudBase
云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档