JavaScript

概念:

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

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

功能:

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

发展史:

  1. 1992年,Nombase公司,开发出第一门客户端脚本语言,专门用于表单的校验。命名为:c--,后来更名为:ScirptEase

  2.1995年,Netscape(网景)公司,开发了一门客户端脚本语言:LiveScript,命名为JavaScript。

  3.1996年:微软抄袭JavaScript开发出了JScript语言。

  4.1997年:ECMA(欧洲计算机制造商协会),ECMAScript,就是所有客户端语言的标准。

  *JavaScript =ECMAScript+BOM+DOM

*ECMAScript:客户端脚本语言的标准

  1.基本语法

    1.与html结合方式

        1.内部JS:定义<script>标签,标签内容就是js代码

        2.外部JS:定义<script>标签,通过src属性引入外部的js文件

        *注意

          1.<script>可以定义在html页面的任何地方。但是定义的位置会影响执行顺序。

          2.<script>可以定义多个。

    2.注释:/

    3.数据类型:

      1.基本数据类型:

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

        2.string:字符串

        3.boolean:true和false

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

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

      2:引用数据类型:对象

    4.变量

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

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

        *强类型:在开辟变量储存空间时,定义了空间将来储存数据的数据类型。只能储存固定类型的数据

        *弱类型:在开辟变量储存空间时,不定义空间将来的储存数据类型,可以存放任意类型的数据。

      *语言:   

    5.运算符:

      1.一元运算符:只有一个运算数的运算符

        *++,--;

      2.算数运算符

        *+,-,*,/,%

      3.赋值运算符

        *=,+=,-=

      4.比较运算符

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

      5.逻辑运算符

        &&  ||  !

      6.三元运算符

        ?:表达式

    6.流程控制语句:

      1.if  else

      2.swtich

        在Java中,switch语句可以接受的类型:byte int short char 枚举  String

        在JS中switch语句可以接受任意类型的语句

      3.while

      4.do  while

      5.for

    7.特殊语法:

      语句以分号结尾,如果一行只有一条语句,分号可以省略。

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

        *用:定义的变量是局部变量。

        *不用:定义的变量是全局变量。   

  2.基本对象:

    Function对象:

      1.创建
                 1.var fun = new Function(形式参数列表,方法体)
                 2.function 方法名称(形式参数列表){
                             方法体
                       }
                 3.var 方法名 =function(形式参数列表){
                          方法体
                      }
             2.方法
             3.属性:
                  length:表示形参的个数
             4.特点:
                1.方法定义时,形参的类型不用写,返回值类型也不写
                2.如果定义名称相同的方法,会覆盖
                3.在js中,方法的调用只与方法的名称有关,于方法的参数无关。
                4.在方法声明中有一个隐藏的内置对象(数组),arguments,封装所有实际的参数
             5.调用:
                  1.方法名称(实际参数列表)

    2.Array:数组对象

1.创建:
    1.var arr = new Array(元素列表);
    2.var arr = new Array(默认长度);
    3.var arr = [元素列表]
2.方法:
      join():将数组中的元素按照指定的分隔符拼接为字符串
      push():像数组的末尾添加一个或更多元素,并返回新的长度
3.属性
  length:数组的长度
4.特点
  1.js中,数组元素的类型是可变的
  2.在js中数组的长度是可变的

    2.date:日期对象

1.创建:
    var date = new Date();
2.方法:
    toLocaleString():返回当前date对象对应的时间本地字符串格式
    getTime():获取毫秒值。返回当天日期对象描述的时间到1970年1月1日零点的毫秒差值

    3.math:数学对象

1.创建:
  *特点:Math对象不用创建,直接使用。Math().方法名
2.方法:
  random():0~1之间的随机数(包含0,不包含1)
  floor():向下取整
  round():把数四舍五入为最接近的整数
  ceil():向上取整
3.属性:

    4.RegExp:正则表达式对象

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

        1.单个字符[ ]:

           如:[a]   [ab]  [a-z]   [a-zA-Z0-9A]

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

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

              \w:单个单词字符[a-zA-Z0-9A]

        2.量词符号:

            ?:表示出现0次或1次

            *:表示出现0次或多次

            +:表示出现1次或多次

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

              *如果m缺省,表示最多n次

              *  n                  最少m次

        3.开始结束符号

         ^:表示开始

         $:表示结尾

        \w*:表示单个单词字符出现一次或多次

 

      2.对象:

1.创建:
        1.var reg = new RegTex("正则表达式");
        2.var reg = /正则表达式/;
    2.方法:
        1.test(参数):验证指定的字符串是否符合正则定义的规范



*/
var reg = new RegExp("\w{3,12}")
var reg = /^\w{3,12}$/;
var reg = /\\w{3,12}/;
var username = "1"
var flag = reg.test(username);
alert(flag);

    5.Global:

1.特点:全局对象。这个Global中封装的方法不需要对象可以直接调用
    2.方法:
      encodeURI:url编码
      decodeURI:url解码

      encodeURIComponent:url编码,编码的字符更多
      decodeURIComponent:url解码,解码的字符更多

      parseInt():将字符串转为数字
        *逐一判断每一个字符是否为数字,直到不是数字为止,将前面的数字转为number

      isNaN:判断一个值是否为NaN
        *NaN六亲不认,连自己都不认,NaN参与的==比较全为false
      
      eval():将JavaScript字符串转为JavaScript脚本执行
    3.URL:编码
        传智播客:%E4%BC%A0%E6%99%BA%E6%92%AD%E5%AE%A2


*/
var str = "传智播客";
var code = encodeURI(str)
document.write(code+"<br>");//%E4%BC%A0%E6%99%BA%E6%92%AD%E5%AE%A2

var str2 = "245";
var number = parseInt(str2);
document.write((number+1)+"<br>")

var a =NaN;
document.write((a==NaN)+"<br>");
document.write(isNaN(a));

var str3 = "alert(123)";
eval(str3);

      

 

      

posted @ 2022-12-28 23:42  会秃头的小白  阅读(17)  评论(0编辑  收藏  举报