JavaScript基础第01天笔记

JavaScript基础第01天

一、概念

一门客户端脚本语言,增强用户与HTML交互过程,可以控制HTML,让页面有一些动态效果,增强用户体验

运行在客户端浏览器中,每一个浏览器中都有javascript的解析引擎

脚本语言:不需要编译,可以直接在浏览器解析执行

二、历史

90年代的时候,网速是很慢的,当利用表单注册时,把数据发送到服务器,填写表单如果数据出现问题,服务器就会响应,告诉是什么问题,但是这一来一回,很慢很慢,浪费时间。这时候就有人提出,能不能设计一种脚本语言,让表单的数据格式在客户端那就校验完成,正确之后再发送给服务器。

1992年,Nombase公司开发了第一门客户端脚本语言,专门用于表单验证。命名:C–,虽然C++很火,但是当时的程序员一看见C–,就以为他很难,没人想去学。后来更名为ScriptEase,才火起来

1995年,Netscape(网景)公司,借助C–的灵感,开发了一门客户端脚本语言:LiveScript。但是网景公司是专门做浏览器的,对于语言的编写,还是存在缺陷,就找到了SUN公司的专家合力在LiveScript的基础上进行开发,之后命名为javascript(增java热度)

1996年,微软也想开发出客户端脚本语言来搭载在自己的IE浏览器上,就抄袭JavaScript开发出来JScript

这就出现了三足鼎立了,可是各有各家,市场就被搅乱了。。。

1997年,ECMA(欧洲计算机制作商协会)就站了出来,让客户端脚本语言来统一标椎,ECMAScript标椎。

现在的要学习的JavaScript = ECMAScript标准+ JavaScript自己特有的(BOM+DOM)

三、ECMAScript

1.基本语法

1).与HTML结合
  • 内部js:在HTML中任意位置定义
2).注释
  • //单行注释
  • /* 多行注释 */
3).数据类型
  • 原始数据类型:
    • number:数字。整数、小数、NaN
    • string:字符串
    • boolean:true和false
    • null:一个空的占位符
    • undifined:如果一个变量没有给初始值,则默认赋值为undifined
  • 引用数据类型:对象
4).变量

一小块存储数据的内存空间

js是弱类型,申请空间的时候不需要指定存储类型,想存什么存什么。var a = 3; a = “abc”;

java是强类型,申请空间的时候需要指定存储类型,以后这个变量只能存那个数据类型。int a = 3; a = 4;

typeof(a)可以查询变量a的数据类型

5).运算符
6).流程控制语句

2.基本对象

Function
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>wangningbo</title>
    <script>
        /*  Function对象
               1.创建对象三种方式
               2.属性:
                  length:fun.length表示形参的个数
               3.特点:
                  1.方法定义,形参的类型不用写
                  2.方法是一个对象,如果定义相同名称的方法,会覆盖
                  3.在JS中,方法的调用只与定义方法的名字有关,与传入的参数列表无关
                  4.传入的参数会被封装成数组,arguments
        */
        //创建方式一(基本不用,了解)
        var fun1 = new Function("a","b","alert(a+b);")
        fun1(1,2)

        //创建方式二
        function fun2(a,b) {
           alert(a+b)
        }
        fun2(1,2)

        //创建方式三
        var fun3 = function(a,b) {
            alert(a+b)
        }
        fun2(3,2)
    </script>
</head>
<body>
</body>
</html>
Array
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>wangningbo</title>
</head>
    <script>
        /*
        *   Array:数组对象
        *     1.创建:
        *        1. var arr = new Array(元素列表);
        *        2. var arr = new Array(默认长度);
        *        3. var arr = [元素列表]
        *     2.方法:
        *         join(分隔符)    把数组的所有元素放入一个字符串。元素通过指定的分隔符进行分隔。
        *         push()   向数组的末尾添加一个或更多元素,并返回新的长度。
        *     3.属性:
        *        length
        *     4.特点:
        *        1.JS中,数组元素的内容是可变的
        *        2.数组长度可变
        * */
          var arr1 = new Array(1,2,3);
          var arr2 = new Array(4);
          var arr3 = [1,2,3]
          document.write(arr1+"</br>")
          document.write(arr2+"</br>")
          document.write(arr3+"</br>")

        var arr4 = [1,"abc",true]
        document.write(arr4+"</br>")

        document.write(arr4.join("."))
        arr4.push([2,3])
        document.write(arr4+"</br>")
        arr4.push("wer")
        document.write(arr4+"</br>")
    </script>
<body>
</body>
</html>
Boolean
Date
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>wangningbo</title>
    <script>
        /*
        * Date:日期对象
        *
        *   1.创建:
        *      var date = new Date();
        *   2.方法:
        *     toLocaleString() 根据本地时间格式,把 Date 对象转换为字符串。
        *     getTime()    返回 1970年 1月1日至今的毫秒数。
        *
        * */
        var date = new Date();
        document.write(date+"</br>")
        document.write(date.toLocaleString()+"</br>")
        document.write(date.getTime()+"</br>")
    </script>
</head>
<body>
</body>
</html>
Math
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>wangningbo</title>
    <script>
        /*
        * Math:数学对象
        *   1.无需创建,直接使用
        *
        *   2.方法:
        *     random()	返回 [0,1) 之间的随机数。
        *     ceil(x)	对数进行上舍入,3.14变成4
        *     floor(x)	对数进行下舍入,3.14变成3
        *     round(x)	把数四舍五入为最接近的整数。
        * */
        var num = Math.floor(Math.random() * 100) + 1;
        document.write(num);
    </script>
</head>
<body>
</body>
</html>
Number
String
RegExp
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>wangningbo</title>
    <script>
        /*
        * RegExp:正则表达式对象
        * 了解正则表达式规则:
        *  1.单个字符:[]
        *    从中括号中选择一个匹配成功
        *    如:[a],[ab],[0-9],[a-z],[A-Z]
        *    特殊字符:
        *      \d:[0-9]
        *      \w:[a-z0-9A-Z]
        *  2.量词符号:
        *    ?: 1次或0次
        *    *:0次或多次
        *    +:1一次或多次
        *    {m,n}:<=m数量<=n
        *  3.开始结束符号:
        *    ^:开始
        *    $:结束
        * 对象:
        *    1.创建:
        *      var reg = new RegExp("正则表达式");
        *      var reg = /正则表达式/;
        *    2.方法:
        *      test(str) 检索字符串中指定的值。返回 true 或 false。
        *
        * */
        //要添加转义字符
        var reg1 = new RegExp("^\\w{2,5}$");
        var reg2 = /^[1]\d{2,6}$/;
        var username = "122";
        var flag= reg2.test(username)
        alert(flag)
    </script>
</head>
<body>
</body>
</html>
Global
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>wangningbo</title>
    <script>
        /*
        * Global:对象
        *   1.这个对象里面的方法不需要对象调用就可以直接使用
        *   2.方法:
        *    decodeURI()	解码某个编码的 URI。
        *    encodeURI()	把字符串编码为 URI。
        *
        *    decodeURIComponent()	解码一个编码的 URI 组件。结果和上面一样,但放的字符可以更多
        *    encodeURIComponent()	把字符串编码为 URI 组件。
        *    parseInt()	解析一个字符串并返回一个整数。
        *    eval()	计算JavaScript字符串,并把它作为脚本代码来执行。
        *   3.url编码:
        * */

        var str  = "韩芊";
        var encode = encodeURI(str);
        document.write(encode+"<br>");

        var decode = decodeURI(encode);
        document.write(decode+"<br>");

        var encode1 = encodeURIComponent(str);
        document.write(encode1+"</br>");

        var decode2 = decodeURIComponent(encode1);
        document.write(decode2+"</br>");

        var str1 = "123";
        var num = parseInt(str1)
        document.write(num+2)

        var str3 = "alert('123')";
        eval(str3)
    </script>
</head>
<body>
</body>
</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值