JavaScript基础语法

ECMAScript语法基础

JavaScript是ECMAScript最流行的实现之一,JavaScript的核心功能基于ECMAScript标准,但JavaScript还具有ECMAScript标准中没有的其他功能。所以两者密不可分。

我们先来了解ECMAScript的基础语法,简单来说就是ECMASript是一种标准化的脚本程序设计语言规范,JavaScript是实现这种规范的一种语言,但js也有自己的拓展。相当于实现了ECMA的接口,还有TypeScript等语言都可以抽象为实现了ECMA的标准。
在这里插入图片描述

  • JavaScript 一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为 JavaScript 引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在 HTML(标准通用标记语言下的一个应用)网页上使用,用来给 HTML 网页增加动态功能。

  • ECMAScript 是一种由 Ecma 国际(前身为欧洲计算机制造商协会,European Computer Manufacturers Association)通过 ECMA-262 标准化的脚本程序设计语言。这种语言在万维网上应用广泛,它往往被称为 JavaScript 或 JScript,但实际上后两者是 ECMA-262 标准的实现和扩展。

JavaScript 是 1996 年创造的,它在 1997 年提交给 Ecma International,因此才有了 ECMAScript。同时,由于 JavaScript 遵循 ECMAScript 标准,因此 JavaScript 是 ECMAScript 的实例。


0.与HTML结合

可以写到任意位置,执行结果与其位置有关

  • 内部JS(通常在标签内引入)
		<script>
			alert("Hello JavaScript!");
		</script>
  • 外部的JS
		<script src="../js/combine.js"></script>

1.数据类型

1.1 基本数据类型

1.number:数字。整数/小数/NaN(not a number一个不是数字的数字类型)

  • var a = + “1213abc”;//将字符串转换为数字

2.string:字符串。字符串“abc","a",'abc'

3.boolean:true 和 false

4.null:一个对象为空的占位符

5.undefined:未定义。如果一个变量没有给初始化值,则会被默认赋值为undefined

1.2 引用数据类型

  • 引用数据类型:对象

  • 引用数据类型也就是对象数据类型object,常用的有:Math、Array、Function、Data、RegExp、Global等


Function对象

I.创建

II.方法

apply()、call()、bind()、toSource()、toString()、isGenerator()六个。

Function 是引用类型,所以也具有length属性、valueOf与toString 方法。应该将所有function都看做Function 的对象,函数名即该对象的引用!

III.属性

  1. length:形参的个数
  2. 方法是一个对象,如果定义名称相同的方法,会覆盖
  3. 在JS中,方法的调用至于方法名称有关,与参数个数无关(区别于Java)
  4. 在方法声明中,有一个隐藏内置对象(数组),arguments来封装所有参数

IV.特点

  • 方法定义形参的类型不写(因为全为var没意义)

V.调用

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

实例

求任意数之和:

<script>
        function add() {
            var result = 0;
            for (var i = 0; i < arguments.length; i++) {
                result += arguments[i];
            }
            return result;
        }
        var sum = add(1, 2, 3, 4);
        alert(sum);
 </script>

Array对象

Array:数组对象

I. 创建:

        1.var arr=new Array(元素列表);
        2.var arr=new Array(默认长度);
        3.var arr=[元素列表];

II. 方法

  • join()将数组元素按指定分隔符分割

III. 特点(这就是别人家的数组)

  • JS中,数组元素类型可变
  • 数组长度可变

Date对象

Date日期对象:

  • 创建
    var date = new Date();
  • 格式化
    toLocaleString()

在这里插入图片描述
在这里插入图片描述


Math对象

取1~100之间的随机整数

  1. Math.random()产随机:范围(0,1]数
  2. 乘以100–>[0,99.9999]小数
  3. 舍弃小数部分:floor–>[0,99]整数
  4. +1----> [0,99] 整数 [1,100]
 var number = Math.floor((Math.random() * 100)) + 1;
 
 document.write(number);

RegExp正则表达式对象

正则表达式:定义字符串的组成规则

I. 单个字符[]

如:[a][ab][a-z A- 0-9 _]

特殊符号代表特殊含义的单个字符:

\d:单个数字字符[e-9]

\w:单个单字符[a-z A-z e-9_]

II. 量词符号

:表示出现0次或1次

*:表示出现0次或多次

+:出现1次或多次

{m,n}:表示 m<= 数量 <=n

  • m如果缺省:{,n}:最多n次

  • n如果缺省:{m,}最少m次

III. 开始结束标号

  • ^:开始
  • $:结束

2. 正则对象

  • 创建
var reg = new RegExp("正则表达式");
var reg = /^\w{6, 12}$/;
  • 方法

test(参数):验证指定字符串是否符合正则定义的规范


Global对象

Global全局对象

  1. 特点:全局对象,Global中封装的方法不需要对象就可以直接调用。

  2. 方法:

  • encodeURI(): url编码

  • decodeURI(): url解码
    在这里插入图片描述

  • encodeURIComponent(): url编码,编码的字符更多

  • decodeURIComponent(): url解码
    在这里插入图片描述
    在这里插入图片描述

  • parseInt(): 将字符串转为数字
    逐一判断每一个字符是否为数字,直到不是数字为止,将前边数字部分转为number

  • isNaN(): 判断值是否为NaN
    *== 为 false

  • eval(): 将JS字符串解析为脚本代码来执行

3.URL编码

数字媒体技术 = %E6%95%B0%E5%AD%97%E5%AA%92%E4%BD%93


2.变量

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

Java语言是强类型的语言,JavaScript是弱类型的语言

  • 强类型在申请空间时必须 规定类型,弱类型在申请空间时不用规定类型(可以存放任意类型的数据)

语法:

var 变量名 = 初始化值;

        var a = 3;
        alert(a);

或者

变量名 = 初始化值;

        a = "abc";
        alert(a);

typeof运算符:获取变量的类型。注:null 运算后得到的是object

		var num = NaN;
        var str = "abc";
        var obj = undefined;
        //输出到页面上
        document.write(num+"-----"+typeof(num)+"<br>");
        document.write(str+"-----"+typeof(str)+"<br>");
        document.write(obj+"-----"+typeof(obj)+"<br>");
  • 执行结果
    在这里插入图片描述

3.运算符

JavaScript运算符与Java相似,类比Java即可

  • 一元运算符:只有一个运算数的运算符

++,-,+(正号)

  • 算数运算符

+,-,*,/,%,

  • 赋值运算符

=, +=, -=,

  • 比较运算符

>,<, >=, <= , ==, \===

  • 逻辑运算符

&&, ||, !

  • 三元运算符

? :

4.特殊语法(作用域)

变量的定义使用var关键字,也可以不使用

  • 用:定义的是局部变量
  • 不用:定义的是全局变量

5.流程控制语句

  1. if…else…
  2. while
  3. do…while
  4. for
  5. switch(任意类型)
  • Java中switch可接受的数据类型:byte,int,short,char,enum(JDK1.5),String
        var c = "abc";
        switch(c) {
            case 1:
                alert("number");
                break;
            case "abc":
                alert("string");
                break;
            case true:
                alert("boolean");
                break;
            case null:
                alert("null");
                break;
            case undefined:
                alert("undefined");
                break;
        }

【文章参考】

  1. ECMAscript 和 Javascript 的区别
发布了74 篇原创文章 · 获赞 118 · 访问量 2万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 数字20 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览