JavaScript基础

目录

一 . 什么是JavaScript ?

二 . JavaScript语言的发展历程 ?

三 . JavaScript的组成

四 . JavaScript的基本结构

五 . JavaScript的运行顺序

六 . 输出语句

七 . JavaScript的执行原理

八 . 使用客户端脚本语言的好处 ?

九 . 在网页中引用JavaScript的方式

十 . 变量的声明和赋值

十一 . 常用的基本数据类型

十二 . 数组

十三 . 运算符号

十四 . 逻辑控制语句

十五 . 中断循环

十六 . 注释

十七 . 关键字

十八 . 保留字

十九 . 常用的输入输出

二十 . 语法约定

二十一 . Chrome开发人员工具

二十二 . JavaScript中的函数

二十三 . 自定义函数

二十四 . 调用函数

二十五 . 常见的事件

==================================================================

一 . 什么是JavaScript ?

答 : 1 . JavaScript是一种描述性语言 , 也是一种基于对象(Object)事件驱动(Event Driven)的 , 并具有安全性能的脚本语言 ; 

      2 . 他与HTML(超文本标记语言)一起 , 在一个Web页面中链接多个对象 , 与Web客户实现交互 ;

      3 . 无论在客户端还是服务器端 , JavaScript应用程序都要下载到浏览器的客户端执行 , 从而减轻了服务器的负担 ;

      4 . JavaScript的语言和java类似 , 是边执行边解释的 ;

二 . JavaScript语言的发展历程 (了解一下即可)?

答 : 1 . 1992年 , Nombas公司开发了一种称为Cmm的嵌入式脚本语言 , 并把它捆绑在一个称为CEnvi的产品中 , 之后又将其改名为ScriptEase ; 

      2 . Netscape公司为了扩展其浏览器的功能 , 开发了一种名为LiveScript的脚本语言 , 并与1995年将其更名为JavaScript ; 

      3 . 之后Microsoft公司进军浏览器市场 , 发布了IE3.0 , 并搭载了JavaScript的复制版 , 称为JScript , 到此时为止 , 有三种不同的JavaScript版本同时存在 : Netscape公司的JavaScript , IE中的JScript , CEnvi软件中的ScriptEase ; 

      4 . 此时的JavaScript(这么称呼或有不准确)没有一个标准来统一其语法和特性 , 这几种版本之间也互有冲突 , 为了解决这一问题 , JavaScript1.1作为一个草案提交给欧洲计算机制造商协会(ECMA) , 最终ECMA-262标准应运而生 , 该标准定义了称为ECMAScript的脚本语言 ;

      5 . 后来国际标准化组织以及国际电工委员会(ISO/IEC)也采纳了ECMAScript作为标准 ;

      综上所述 , ECMAScript是一种脚本语言的标准 , JavaScript语言就是遵循ECMAScript标准的一种实现 ;

三 . JavaScript的组成

答 : 1 . 尽管ECMAScript是一个重要的标准 , 但它并不是JavaScript的唯一部分 , 也不是唯一被标准化的部分 ;

      2 . 实际上 , 一个完整的JavaScript是由以下三个不同的部分组成 :

⑴ . ECMAScript标准

是一种开放的 , 被国际上广泛接受的 , 标准的脚本语言规范 , 不予任何具体的浏览器绑定 , ECMAScript主要描述了语法 , 变量和数据类型 , 运算符 , 逻辑控制语句 , 关键字和保留字 , 对象 ;

ECMAScript是一个描述 , 规定了脚本语言的所有属性 , 方法和对象的标准 , 我们一定要遵守 ;

⑵ . 浏览器对象模型

浏览器对象模型(Browser Object Model , BOM) , 提供了独立于内容与浏览器窗口进行交互的对象 , 使用浏览器对象模型可以实现与Html的交互 , 如网上常见的弹出窗口 , 前进后退功能都是浏览器对象控制的 ;

⑶ . 文档对象模型

文档对象模型(Document Object Model , DOM) , 是HTML文档对象模型(HTML DOM)定义的一套标准方法 , 用来访问和操纵HTML文档 , 如网上商城常见的随鼠标移动显示大的图片 , 弹出小提示都是文档对象的功劳 ;

四 . JavaScript的基本结构

答 : JavaScript代码是由<script>标签对嵌入HTML文档的 ; 

      示例 :

    <script type="text/javascript">
//type指定了文本使用的语言类别为text/javascript,该标签对可以放在文档任意位置
    </script>

五 . JavaScript的运行顺序

答 : 1 . 浏览器在遇到<script>标签时 , 将逐行读取内容 , 直到遇到</script>结束标签为止 ;

      2 . 之后浏览器将会检查JavaScript的语法 , 如果有任何错误 , 则会在警告栏内显示 , 如果没有错误 , 则浏览器编译并执行语句 ;

六 . 输出语句

答 : 1 . document.write()用来向页面输出可以包含HTML标签的内容 ; 

      2 . alert("弹出内容") ;

      示例 :

<script type="text/javascript">
    document.write("<h1>HelloWorld</h1>")
</script>

七 . JavaScript的执行原理

答 : 在JavaScript中 , 浏览器客户端与应用服务器端采用 请求/响应 模式进行交互 ; 

      1 . 发送请求 : 浏览器客户端向服务器发送请求 , 也就是用户在地址栏输入要访问的页面 , 该页包含JavaScript程序 ;

      2 . 数据处理 : 服务器端将某个包含JavaScript的页面进行处理 ;

      3 . 发送响应 : 服务器端将含有JavaScript的HTML文件处理页面发送到浏览器客户端 , 然后由浏览器客户端从上至下逐条解析HTML标签和JavaScript , 并将页面效果呈现给用户 ;

八 . 使用客户端脚本语言的好处 ?

答 : 1 . 包含JavaScript的页面只要下载一次即可 , 这样能减少不必要的网络通信 ;

      2 . JavaScript程序有浏览器客户端执行 , 而不是由服务器端执行 , 因此能减轻服务器端的压力 ;

九 . 在网页中引用JavaScript的方式

答 : 1 . 内部 : 直接使用<script>标签对将代码加入HTML文档 , 适合用于特效代码少的单个页面 ;

      2 . 外部 : 将js代码写入一个外部文件中 , 以*.js为扩展名保存 , 然后将该文件指定给<script>标签中的"src"

属性 , 这样就可以引用这个外部文件 , 适合应用于代码较多 , 重复应用于多个页面 ;

      示例 :

<script type="text/javascript" src="js/测试.js"></script>

      3 . 直接在HTML标签中 : 适合极少代码的情况 , 仅用于当前标签 ;

      示例 :

<input name="btn" type="button" value="弹出消息框" οnclick="javascript:alert('欢迎你');"/>

十 . 变量的声明和赋值

答 : JavaScript是一种弱语言类型 , 没有明确的类型 , 也就是说 , 在声明变量时 , 不需要指定变量的类型 , 变量的类型由赋给变量的值决定 ; 

变量使用关键字var声明 , 例如 : var 合法的变量名(命名规则同java相同) ;

特别注意 :

1 . JavaScript区分大小写 , 所以大小写不同的变量名代表不同的变量 ;

2 . 由于JavaScript是一种弱语言类型 , 因此允许不声明变量而直接使用 , 系统将会自动声明该变量 ;

<script type="text/javascript">
    x=88;//没有声明变量,直接使用,但这种方式出错不容易查找,因此不推荐,要养成良好的编程习惯
</script>

十一 . 常用的基本数据类型

答 : 1 . undefined : 未定义类型 ;

      2 . null : 空类型 ;

      3 . number : 数值类型 ;

      4 . String : 字符串类型 ;

      5 . boolean : 布尔类型 ;

      6 . typeof : ECMAScript提供了typeof运算符来判断一个值或变量究竟属于哪种数据类型 , 语法如下 :

      示例 :

<script type="text/javascript">
    var width,height=10,name="rose";
    var date=new Date();
    var arr=new Array();
    document.write("width:"+typeof(width)+"<br/>");//undefined
    document.write("height:"+typeof(height)+"<br/>");//number
    document.write("name:"+typeof(name)+"<br/>");//String
    document.write("date:"+typeof(date)+"<br/>");//Object
    document.write("arr:"+typeof(arr)+"<br/>");//Object
    document.write("true:"+typeof(true)+"<br/>");//boolean
    document.write("null"+typeof(null)+"<br/>");//Object
</script>

      返回结果有以下几种 :

      ⑴ . undefined : 未声明或者声明未赋值非引用类型返回该结果 ;

      ⑵ . number : 数值类型返回该结果 ;

      ⑶ . String : 字符串类型返回该结果 ;

      ⑷ . boolean : boolean类型返回该结果 ;

      ⑸ . Object : null类型 , 数值类型等引用类型返回该结果 ;

      特别注意 : 

      ⑴ . null表示"什么也没有"的占位符 , undefined实际上是由null派生而来的 , JavaScript把他们定义为相等 , 尽管这两个值相等 , 但含义不同 , undefined表示未声明或声明了但未赋值 , null表示该变量被赋予了一个空值 ;

      ⑵ . number类型既可以表示32位整数 , 又可以表示64位的浮点数 ;

            整数可以表示为8进制或16进制 , 8进制首位数字必须是0 , 其后的数字可以是任何八进制数字(0~7) ;

            16进制数字的首位数字也必须是0 , 后面的任意的16进制的数字和字母(0~9)和(A~F) ;

            对于非常大的和非常小的数 , 可以用科学计数法来表示 , 它也是number类型 ;

            另外还有一个特殊值NaN(Not a number) , 表示非数 , 也是number类型 ;

      ⑶ . JavaScript不对"字符"和"字符串"加以区分 , 他们都是String类型 ;

           JavaScript中的String也是一种对象 , 和Java中的String对象类似 , 它也有一个length属性 , 表示字符串的长度 , 包含空格 , 调用length的语法如下 :

<script type="text/javascript">
    var str="this is javascript";
    var strLength=str.length;
</script>

            JavaScript中也有许多方法用来处理和操作字符串 , 常用方法如下 :

            ★ indexOf(str,index) : 查找某个指定的字符串在字符串中首次出现的位置 , 找到返回位置 , 没-1 ;

               index是可选参数 , 如果省略该参数 , 会从字符串的首字符开始查找 ;

            ★ charAt(index) : 返回在指定位置的字符 ;

            ★ toLowerCase() : 把字符串转换为小写 ;

            ★ toUpperCase() : 把字符串转换为大写 ;

            ★ subString(index1,index2) : 返回位于指定索引index1和index2之间的字符串 , 包含1不包含2 ;

            ★ split(str) : 将字符串分割为字符串数组 ;

十二 . 数组

1 . 同java中的数组一样 , javascript中的数组也是具有相同数据类型的一个或多个值得集合 , 数组有一个名称 , 用下表区分数组中的每一个值 , 数组的下表从0开始 ;

2 . javascript中创建数组的语法如下(可以在创建的时候直接给数组赋值) : 

    ⑴ . var arr=new Array(size) ;

    ⑵ . var arr=new Array("apple","orange","banana") ;

    ⑶ . var arr=["apple","orange","banana"] ;

    也可以用下标分别为数组中的元素赋值 , 和java一样 , 不在赘述 ;

    其中 :

      new是创建数组的关键字 , Array表示数组的关键字 , size是数组的长度 , 为整数 ;

3 . 数组的常用属性和方法 :

    ★ length : 数组的长度属性 , 数组中元素最大下标 "length-1" , 可以设置或返回数组的长度 ;

    ★ join(分隔符) : 把数组的所有元素放入一个字符串 , 通过一个分隔符进行分隔 ; 

    ★ sort() : 对数组排序 , 默认升序;

    ★ push() : 向数组末尾添加一个或多个元素 , 并返回新的长度 ;

    示例 :

<script type="text/javascript">
    //声明一个字符串并赋值
    var fruit="apple,orange,peach,banana";
    //以','为基准将字符串转化为一个字符串数组
    var arrList=fruit.split(",");
    //通过分隔符'-'将数组分割,并放入一个新的字符串中
    var str=arrList.join("-")
    //输出前后对比
    document.write("分隔前:"+fruit+"<br/>");
    document.write("分割后:"+str+"<br/>");
</script>

十三 . 运算符号

1 . 与java中一样 , 在javascript中 , 常用的运算符可以分为 算数运算符 , 比较运算符 , 逻辑运算符 , 赋值运算符 ;

    ★ 算数运算符 : + , - , * , / , % , ++ , -- ;

    ★ 比较运算符 : > , < , >= , <= , == , != , === , !== ;

    ★ 逻辑运算符 : && , || , ! ;

    ★ 赋值运算符 : = , += , -= ;

    特别注意 :

    ⑴ . ==表示等于 , !=表示不等于 ;

    ⑵ . ===表示恒等 , !==表示不恒等 ;

    ⑶ . ==用于一般比较 , 在比较时会进行自动类型转换 ;

    ⑷ . ===表示严格比较 , 只要类型不匹配就返回false ;

    例如 : "1"==1 , 返回true ; "1"===1 , 返回false ;

十四 . 逻辑控制语句

答 : javascript中的逻辑控制语句也分为两类 : 条件结构 和 循环结构 ;

      1 . 条件结构 : if 和 switch 结构 ;

      2 . 循环结构 : for循环 , while循环 , do-while(循环) ;

          javascript提供了常用于对数组或者对象的属性进行操作的循环 , for-in循环 , 基本语法如下 :

         for(i in 数组名){ //javascript语句; }

         特别注意 : 

            1 . i 可以是指定的变量 , 可以是数组元素 , 也可以是对象的属性 ;

十五 . 中断循环

答 : 1 . break : 立即退出整个循环 ;

      2 . continue : 结束当次循环 , 根据判断条件决定是否进入下一次循环 ;

      示例 :

<script type="text/javascript">
    var arr=["America","Greece","Britain","Canada","China","Egypt"];
    var index=0;
    for(i in arr){
        if((arr[i].indexOf("A")!=-1)||(arr[i].indexOf("a")!=-1)){
            index++;
        }else{
            continue;
        }
    }
    document.write("包含A或a的字符串一共有 : "+index+"个");
</script>

十六 . 注释

答 : 1 . 单行注释 : //开始 , 行末结束 ;

      2 . 多行注释 : /* 开始 , */ 结束 ;

十七 . 关键字

关键字关键字关键字
关键字
关键字
breakcasecatchcontinuedefault
deletedoelsefinallyfor
functionifininstanceofnew
returnswitchthisthrowtry
typeofvarvoidwhilewith
十八 . 保留字

保留字保留字
保留字
保留字
保留字
abstractbooleanbytecharclass
constdebuggerdoubleenumexport
extentsfinalfloatgotoimplements
importintinterfacelongnative
packageprivateprotectedpublicshort
staticsupersynchronizedthrowstransient
volatile    

十九 . 常用的输入输出

答 : 1 . 警告 : alert("提示内容");

      2 . 提示 : prompt("提示信息","输入框的默认信息");

      特别注意 :

          1 . prompt第二个参数如果省略 , 默认显示 undefined , 通常可以将第二个参数设置为空串'' ;

          2 . prompt取消或者直接关闭窗口都返回 null , 如果单机确定将会返回一个字符串类型的数据 ;

二十 . 语法约定

答 : 1 . jacascript区分大小写 , 大小写字母是不能互相替换的 , 几个规则如下 :

          ★ 关键字永远都是小写 ;

          ★ 内置对象以大写字母开头 ;

          ★ 对象名称通常小写 ;

          ★ 方法以匈牙利命名法命名 ;

     2 . 变量 , 对象 , 函数名称

          ★ 与java相同 , 不再赘述 ;

     3 . 分号

          ★ 允许结尾没有分号 , 如果没有分号将会视代码的结尾看做该句语句结尾 , 但出于代码规范性的考量 , 不建议在书写javascript代码时省略分号 ;

二十一 . Chrome开发人员工具

答 : 1. Elements : 用于查看和编辑当前页面中所有的HTML和CSS元素 ;

      2 . Console : 用于显示脚本中所输出的调试信息 , 或运行测试脚本等 ;

      3 . Sources : 用于查看和调试当前页面所加载的脚本的源文件 ;

      4 . Network : 用于查看HTTP请求的详细信息 , 如请求头 , 响应头及返回内容等 ;

      5 . TimeLine : 用于查看脚本执行时间 , 页面元素渲染时间等信息 ;

      6 . Profiles : 用于查看CPU执行时间与内存占用等信息 ;

      7 . Resource : 用于查看当前页面所请求的资源文件 , 如HTML , CSS样式文件等 ;

      8 . Audits : 用于优化前端页面 , 加速网页加载速度等 ;

二十二 . JavaScript中的函数

答 : 在javascript中 , 函数类似于java中的方法 , 但js中的函数使用更简单 , 不需要定义属于哪个类 , 所以也就不需要 "对象名.方法名( )" 的方式 , 直接使用函数名称来调用函数即可 ;

      ★ parseInt( ) : 将非数字的原始值转换为整数 ;

            示例 :

    var num1=parseInt("78.89");  //返回值为78

    var num2=parseInt("4567color");  //返回值为4567

    var num3=parseInt("this36");  //返回值为NaN

      ★ parseFloat( ) : 将非数字的原始值转换为浮点数 ;

            示例 :

    var num1=parseInt("4567color");  //返回值为4567

    var num2=parseInt("45.54");  //返回值为45.54

    var num3=parseInt("45.54.54");  //返回值为45.54

    var num4=parseInt("color4567");  //返回值为NaN

      ★ inNaN( ) : 检查一个值是不是非数字 , 通常用于逻辑判断 ; 

      特别注意 : 只要目标是非数字的时候 , 才会返回true , 如果是number类型的数据 , 返回的是false ;

二十三 . 自定义函数

答 : 同java一样 , javascript需要先定义函数才能调用函数 ;

      1 . 在javascript中 , 自定义函数由关键字 function , 函数名 , 一组参数及置于括号中的待执行的javascript语句组成 , 语法如下 :

      function 函数名(参数1,参数2,参数3,...){

           // javascript 语句 ;

          [return  返回值]

}

      特别注意 :

          ★ function是定义函数的关键字 , 必须有 ;

          ★ 因为js本身是弱语言类型 , 所以它的参数也没有类型检查和类型固定 , 参数可以没有 , 也可以有N个 ;

          ★ return语句用来规定函数返回的值 ;

二十四 . 调用函数

答 : 1 . 要执行一个函数 , 必须先调用这个函数 , 调用函数时 , 必须指定函数名及其后面的参数(如果有参数的话) , 函数的调用一般和时间结合使用 , 语法格式 : 

      事件名="函数名( )" ;

      示例 :

<body>
<input name="btn" type="button" value="输入次数!" οnclick="welcome(prompt('请输入次数!',''))">
<script type="text/javascript">
    function welcome(count){
        for(var i=0;i<count;i++){
            document.write("<h4>welcome!</h4>");
        }
    }
</script>
</body>

      特别提示 :

          ★ 一定要养成用表达式或者调用方法来表示参数的习惯和能力 , 例如上面的 onclick 部分 ;

二十五 . 常见的事件

1 . 一般事件


2 . 页面相关事件


3 . 表单相关事件


4 . 滚动字幕事件


5 . 编辑事件


6 . 数据绑定事件


7 . 外部事件


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JavaScript是一种广泛使用的脚本语言,主要用于网页开发,为网页提供动态交互功能。它是浏览器端的主要执行环境,支持客户端和服务器端编程。以下是一些JavaScript基础概念: 1. **变量**:在JavaScript中,不需要预先声明就可以使用变量。可以直接赋值给变量名。例如: ```javascript let name = "John Doe"; ``` 2. **数据类型**:主要有字符串(String)、数值(Number,包括整数和浮点数)、布尔(Boolean)、null、undefined、数组(Array)和对象(Object)。例如: ```javascript var num = 5; var str = "Hello, World!"; ``` 3. **运算符**:有算术运算符、比较运算符、逻辑运算符等。例如加法 `+` 和等于 `==`: ```javascript var sum = 1 + 2; // sum is now 3 if (num == 5) { /* ... */ } ``` 4. **控制结构**:包括条件语句(if...else)、循环(for, while, do...while),如: ```javascript if (condition) { // code to execute if condition is true } else { // alternative code } for (let i = 0; i < 5; i++) { console.log(i); } ``` 5. **函数**:用于封装可重用的代码块。基本形式如下: ```javascript function greet(name) { return "Hello, " + name + "!"; } ``` 6. **DOM操作**:JavaScript可以操作HTML文档,如获取元素、修改样式、添加或删除节点等。 7. **异步编程**:JavaScript采用事件驱动模型,常用回调函数、Promise和async/await处理异步操作。 要深入了解JavaScript,你可以学习语法、DOM操作、网络请求、模块化、ES6及以上版本的新特性和现代前端框架如React或Vue.js。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值