【JavaScript】part1

【JavaScript】part1

概念:一门客户端脚本语言。

  • 运行在客户端浏览器中。每一个浏览器都有JavaScript的解析引擎
  • 脚本语言:不需要编译,直接就可以被浏览器解析执行。

功能:可以增强用户和html页面的交互过程,可以来控制html元素,让页面有一些动态的效果,增强用户的体验。

JavaScript发展史:

  1. 1992年,Nombase公司,开发出第一门客户端脚本语言,专门用于表单的检验。命名为:C–;
  2. 1995年,Netscape网景公司,开发了一门客户端脚本语言:LiveScript。后来,请来Sun公司的专家,修改LiveScript,命名为JavaScript
  3. 1996年,微软抄袭了JavaScript开发出JScript语言;
  4. 1997年,ECMA(欧洲计算机制造商协会),ECMAScript,就是所有客户端脚本语言的标准。
JavaScript = ECMAScript+ JavaScript自己特有的东西(BOM+DOM)

ECMAScript:客户端脚本语言标准

基本语法

与HTML的结合方式
  • 内部JS:定义<script>,标签体内容就是js代码;

  • 外部JS;定义<script>,通过src属性引入外部的js文件。

注意:

  1. <script>可以定义在html页面的任何地方。但是定义的位置会影响执行顺序;
  2. <script>标签可以定义多个。
注释
  1. 单行注释://注释内容
  2. 多行注释:
/*
注释内容
*/
数据类型
  1. 原始数据类型(基本数据类型):
    • number:数字。整数/小数/NaN(not a number 一个不是数字的数字类型)
    • string:字符串。“abc”、“a“、'abc'
    • boolean:true和false
    • null:一个对象为空的占位符
    • undefined:未定义。如果一个变量没有给初始化值,则会被默认赋值为undefined
  2. 引用数据类型:对象
变量

变量:一小块存储数据的内存空间。

Java语言是强类型语言,而JavaScript是弱类型语言。

  • 强类型:在开辟变量存储空间时,定义了空间将来存储的数据的数据类型。只能存储固定的数据类型。
  • 弱类型:在开辟变量存储空间时,不定义空间将来存储的数据类型。可以存储任意的数据类型。

语法:

var 变量名 = 初始化值;
typeof

typeof可以返回变量的数据类型。

<script>
    var a;
    a = 3;
    alert(a);
    a = 10;
    alert(a);

    //定义number类型
    var num1 = 12;
    var num2 = 2.4;
    var num3 = NaN;

    document.write(num1 + "---" + typeof (num1) + "<br>");//12---number
    document.write(num2 + "---" + typeof (num2) + "<br>");//2.4---number
    document.write(num3 + "---" + typeof (num3) + "<br>");//NaN---number

    document.write("<br>");
    //定义string类型
    var str1 = "abc";
    var str2 = "a";
    var str3 = 'bds';

    document.write(str1 + "---" + typeof (str1) + "<br>");//abc---string
    document.write(str2 + "---" + typeof (str2) + "<br>");//a---string
    document.write(str3 + "---" + typeof (str3) + "<br>");//bds---string
    document.write("<br>");
    //定义boolean类型
    var b1 = true;
    var b2 = false;

    document.write(b1 + "---" + typeof (b1) + "<br>");//true---boolean
    document.write(b2 + "---" + typeof (b2) + "<br>");//false---boolean
    document.write("<br>");
    //定义null类型
    var null1 = null;

    document.write(null1 + "---" + typeof null1 + "<br>");//null---object
    document.write("<br>");
    //定义undefined类型
    var un1 = undefined;
    var un2;

    document.write(un1 + "---" + typeof un1 + "<br>");//undefined---undefined
    document.write(un2 + "---" + typeof un2 + "<br>");//undefined---undefined
    document.write("<br>");


</script>
运算符
  1. 一元运算符:只有一个运算数的运算符
    • ++--+(正号)-(负号)
    • 注意:在JS中,如果运算数不是运算符所要求的类型,那么JS引擎会自动的将运算数进行类型转换:
      • 其他类型转number
      • string转number:按照字面值转换。如果字面值不是数字,则转为NaN
  2. 算术运算符:
    • +-*/%
  3. 赋值运算符:
    • =+=-=
  4. 比较运算符:
    • ><>=<======(全等于)
    • 比较方式:
      1. 类型相同,直接比较
        • 字符串,按照字典顺序比较。按位逐一比较,直到得出大小为止。
      2. 类型不同,先进行类型转换,再比较
        • ===:全等于,在比较之前,先比较类型,如果类型一样再进行值的比较
  5. 逻辑运算符:
    • &&||!
    • 其他类型转boolean【需掌握】:
      1. number:0NaN为假,其他为真;
      2. string:除了空字符串,其他都是true
      3. null&undefined:都是false
      4. 对象:所有对象都是true
  6. 三元运算符:
    • 如:var c = a>b ? a : b
特殊语法
  1. 语句以;结尾,如果一行只有一条语句,则;可以省略(不建议);
  2. 变量的定义使用var关键字,也可以不使用;
    • 用:定义的变量是局部变量
    • 不用:定义的变量是全局变量
流程控制语句
  1. if...else...
  2. switch
    • java中,switch语句可以接收的数据类型:byteshortintchar、枚举、字符串
    • JS中,switch语句可以接收任意数据类型
  3. while
  4. do...while
  5. for
打印九九乘法表小练习
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>九九乘法表</title>
    <style>
        table{
            padding-top: 100px;
        }


        td{
            border: 1px solid;
            font-size: 20px;
            color: #0040ff;
        }
        center{
            font-size: 20px;
            color: #ff006a;
        }
    </style>
</head>
<body>
<script>
    document.write("<table align='center'>");
    for (let i = 1; i <= 9; i++) {

        document.write("<tr>")
        for (let j = 1; j <= i; j++) {
            document.write("<td>")
            document.write(i+"*"+j+"="+(i*j)+"&nbsp");

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

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

    document.write("<center>九九乘法表</center>")
</script>

</body>
</html>

基本对象

Function
  • 创建:

    • 方式1:var fun = new Function(形式参数列表,方法体);【了解】

    • 方式2:【常用】

      function 方法名(形式参数列表){
          方法体;
      }
    • 方式3:

      var func2 = function(形式参数列表){
          方法体;
      }
  • 属性

    • length:形参的个数
  • 特点

    1. 方法定义时,形参类型不用写,返回值类型也可以不写;
    2. 方法是一个对象,如果定义名称相同的方法,会覆盖原来的;
    3. JS中,方法的调用只与方法的名称有关,和参数列表无关(没有重载);
    4. 在方法声明中有一个隐藏的内置对象(数组),arguments,封装了所有的实际参数
  • 调用

    方法名称(实际参数列表);

Array
  • 创建
    1. var arr = new Array(元素列表);
    2. var arr = new Array(默认长度);
    3. var arr = [元素列表];
  • 属性
    • length:数组的长度
  • 特点
    1. JS中,元素的类型是可变的。
    2. JS中,数组的长度是可变的。
  • 方法
    • join(参数):将数组中的元素按照指定的分隔符拼接为字符串;
    • push(参数):向数组的末尾添加一个或多个元素,并返回新的长度;
Boolean
  • 基本数据类型的包装类。
Date
  • 创建:var date = new Date();
  • 方法
    • toLocaleString():返回当前date对象对应的时间本地字符串格式;
    • getTime():获取毫秒值,返回当前时间日期对象描述的时间到1970年1月1日零点的毫秒值的差;
Math
  • 创建:Math对象不用创建,直接使用。Math.方法名();
  • 方法:
    • random():返回0~1之间的随机数,含0不含1;
    • ceil(x):向上取整;
    • floor(x):向下取整;
    • round(x):四舍五入
  • 属性:
Number
  • 基本数据类型的包装类。
String
  • 基本数据类型的包装类。
RegExp
  • 正则表达式:定义字符串的组成规则。
    • 单个字符:[]
      • 如:[a][ab][a-zA-Z0-9_]
      • 特殊符号代表特殊含义的单个字符:
      • \d:单个数字字符 [0-9]
      • \w:单个单词字符[a-zA-Z0-9_]
    • 量词符号:
      • ?:表示出现0次或1次;
      • *:表示出现0次或多次;
      • +:`:表示出现1次或多次;
      • {m,n}:表示 m<= 数量 <= n;
      • 如:\w{6,12}表示6~12位的单个字符
    • 开始结束符号
      • ^:开始;
      • $:结束。
  • 正则对象:
    • 创建:
      1. var reg = new RegExp("正则表达式");
      2. var reg = /正则表达式/;
    • 方法:
      • test(参数):验证指定的字符串是否符合正则定义的范围;
Global
  • 特点:全局对象,这个Global中封装的方法不需要对象就可以直接调用,方法名();
  • 方法:
    • encodeURI():编码
    • decodeURI():解码
    • encodeURIComponent():编码,编码的字符更多
    • decodeURIComponent():解码
    • parseInt():将字符串转为数字
      • 逐一判断每一个字符是否为数字,直到不是数字为止
    • eval():将JavaScript字符串转成脚本代码来执行
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值