简述 JavaScript

JavaScript

学习目标:

  • 熟悉JS代码的语法

JS

JavaScript是运行在浏览器端的脚本语言, 是由浏览器解释执行的, 简称js, 它能够让网页和用户有交互功能, 提高用户体验效果。

JavaScript是一种弱类型语言

强类型语言:

也称为强类型定义语言。是一种总是强制类型定义的语言,要求变量的使用要严格符合定义,所有变量都必须先定义后使用。一旦一个变量被指定了某个数据类型,如果不经过强制转换,那么它就永远是这个数据类型了。

弱类型语言:

也称为弱类型定义语言。与强类型语言相反,是一种数据类型可以被忽略的语言,一个变量可以赋于不同数据类型的值。

例如:

Python中整数类型的5与字符串类型的"5"相 “+”,即5 + “5”

如果不进行类型转换,会报类型错误

把整数类型的5强制转换为字符串类型的"5":str(5) + “5”,结果为字符串类型的"55"

把字符串类型的"5"强制转换为整数类型的5:5 + int(“5”),结果为整数类型的10

JavaScript中数字类型的5与字符串类型的"5"相 “+”,即5 + “5”,数字类型的5会**自动转换(也叫隐式转换)**成字符串类型的“5”,最终运行结果为“55”

Python中中整数类型的5与字符串类型的"5"进行比值,即5 == “5”,因为两者类型不同,结果为False

JavaScript中数字类型的5与字符串类型的"5"进行比值, 即5 == “5”,字符串类型的"5"会**自动转换(也叫隐式转换)**成数字类型的5,最终结果为true

动态语言:

解释器从上往下读代码,读一行,就把这行代码解释成二进制,然后就执行这行代码

静态语言:

编译器先把整个代码文件全部编译成二进制文件,然后再执行这个二进制文件

强类型定义语言在定义速度上可能略逊色于弱类型定义语言,但是强类型定义语言带来的严谨性能够有效的避免许多错误。另外,“这门语言是不是动态语言”与“这门语言是否类型安全”之间是完全没有联系的!

例如:Python 是动态语言,是强类型定义语言(类型安全的语言); JavaScript 是动态语言,是弱类型定义语言(类型不安全的语言); JAVA 是静态语言,是强类型定义语言(类型安全的语言)。

一、JavaScript的使用方式

  • 行内式
  • 内嵌式
  • 外链式

1.1行内式(主要用于事件)

<input type="button" name="" onclick="alert('ok!');">

1.2内嵌式

<script type="text/javascript">        
    alert('ok!');
</script>

1.3外链式

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

重点掌握内嵌式和外链式

二、变量和数据类型

2.1定义变量的语法格式:

var 变量名 = 值;

 var iNum = 123;
 var sTr = 'asd';

 //同时定义多个变量可以用","隔开,公用一个‘var’关键字

 var iNum = 45,sTr='qwe',sCount='68';

2.2数据类型

js中有六种数据类型,包括五种基本数据类型和一种复杂数据类型(object)。

5种基本数据类型:
1、number: 数字类型
2、string: 字符串类型
3、boolean: true 或 false
4、undefined: 变量声明未初始化,它的值就是undefined
5、null: 表示空对象,如果定义的变量将来准备保存对象,可以将变量初始化为null,在页面上获取不到对象,返回的值就是null

1种复合类型:
object: 后面学习的数组、函数和JavaScript对象都属于复合类型

2.3 变量命名规范

1、区分大小写
2、第一个字符必须是字母、下划线(_)或者美元符号($)
3、其他字符可以是字母、下划线、美元符或数字

匈牙利命名风格

对象o Object 比如:oDiv
数组a Array 比如:aItems
字符串s String 比如:sUserName
整数i Integer 比如:iItemCount
布尔值b Boolean 比如:bIsComplete
浮点数f Float 比如:fPrice
函数fn Function 比如:fnHandler

2.4 JavaScript注释

JavaScript的注释分为单行注释(//注释内容)和多行注释(/*多行注释*/)

三、函数的定义和调用

  • 函数的定义

      function 函数名(参数[参数可选]){  
          // 函数的代码实现  
          ...  
      }
    
  • 函数的调用

      函数名(参数[参数可选])
    

**示例代码: **

<script type="text/javascript">
function fnAdd(iNum01,iNum02){
    var iRs = iNum01 + iNum02;
    return iRs;
    alert('here!');
}

var iCount = fnAdd(3,4);
alert(iCount);  //弹出7
</script>

四、变量作用域

变量作用域就是变量的使用范围,变量分为:

  • 局部变量
  • 全局变量

4.2 局部变量

局部变量就是在函数内使用的变量,只能在函数内部使用。

<script type="text/javascript">
    function myalert()
    {
        // 定义局部变量
        var b = 23;
        alert(b);
    }
    myalert(); // 弹出23
    alert(b);  // 函数外使用出错
</script>

4.3 全局变量

全局变量就是在函数外定义的变量,可以在不同函数内使用。

<script type="text/javascript">
    // 定义全局变量
    var a = 12;
    function myalert()
    {
        // 修改全局变量
        a++;
    }
    myalert();
    alert(a);  // 弹出13    
</script>

五、条件语句

5.1 条件语句语法

  1. if 语句 - 只有当指定条件为 true 时,使用该语句来执行代码
  2. if…else 语句 - 当条件为 true 时执行代码,当条件为 false 时执行其他代码
  3. if…else if…else 语句 - 使用该语句来判断多条件,执行条件成立的语句

5.2 比较运算符

假如 x = 5, 查看比较后的结果:

比较运算符描述例子
==等于(等号两边类型不同, 会先转换类型)x == 8 为 false
===全等(值和类型)x === 5 为 true; x === “5” 为 false
!=不等于x != 8 为 true
>大于x > 8 为 false
<小于x < 8 为 true
>=大于或等于x >= 8 为 false
<=小于或等于x <= 8 为 true

比较运算符示例代码:

var iNum01 = 12;
var sNum01 = '12';

if(iNum01==12){
    alert('相等!');
}
else{
    alert('不相等!')
}

// "==" 符号默认会将符号两边的变量转换成数字再进行对比,这个叫做隐式转换
if(sNum01==12){
    alert('相等!');
}
else{
    alert('不相等!')
}

// "===" 符号不会转换符号两边的数据类型
if(sNum01===12){
    alert('相等!');
}
else{
    alert('不相等!')
}

// 多条件判断
var sFruit = "苹果";
if (sFruit == "苹果") {
    alert("您选择的水果是苹果");
} else if (sFruit == "鸭梨") {
    alert("您选择的水果是鸭梨");
} else {
    alert("对不起,您选择的水果不存在!")
}

5.3 逻辑运算符

假如 x=6, y=3, 查看比较后的结果:

比较运算符描述例子
&&and(x < 10 && y > 1) 为 true
||or(x5 || y5) 为 false
!not!(x==y) 为 true

逻辑运算符示例代码:

var x = 6;
var y = 3;

if(x < 10 && y > 1){
    alert('都大于');
}
else{
    alert('至少有一个不大于');
}

if(x > 5 || y > 7 ){
    alert('至少有一个大于');
}
else{
    alert('都不大于');
}

if(!(x == y)){
    alert('等于')
}
else{
    alert('不等于')
}

六、获取标签元素和操作标签元素属性

标签属性的获取和设置:

  1. var 标签对象 = document.getElementById(‘id名称’); -> 获取标签对象
  2. var 变量名 = 标签对象.属性名 -> 读取属性
  3. 标签对象.属性名 = 新属性值 -> 设置属性

获取标签元素属性

<head>
       <style>
        .btnstyle{
            background: yellow;
            font-size: 30px;
        }
    </style>

    <script>
        // 等页面加载完之后执行匿名函数
        window.onload = function(){
            //  根据id获取标签对象
            var oBtn = document.getElementById("btn1");
            //  获取标签的属性
            alert(oBtn.type);
            alert(oBtn.value);
            //  设置标签的属性
            oBtn.name = "username";
            //  设置样式的属性
            // oBtn.style.background="red";
            //  相当于设置class ,以后通过类选择器给标签添加样式
            //  注意点: class 这里变成 className
            oBtn.className = "btnstyle"
            //  font-size => fontSize
            // oBtn.style.fontSize = "30px";
        };
    

</head>
<body>
    <input type="button" value="按钮" id="btn1" >
</body>

七、数组

数组就是一组数据的集合,javascript 中,数组里面的数据可以是不同类型的数据,好比 python 里面的列表。

7.1 数组的定义

// 实例化对象方式创建
var aList = new Array(1,2,3);

// 字面量方式创建,推荐使用
var aList2 = [1,2,3,'asd'];

7.2多维数组

多维数组指的是数组的成员也是数组,把这样的数组叫做多维数组。

var aList = [[1,2,3],['a','b','c']];

7.3数组的操作

7.3.1 获取数组的长度
var aList = [1,2,3,4];
alert(aList.length); // 弹出4
7.3.2 根据下标取值
var aList = [1,2,3,4];
alert(aList[0]); // 弹出1
7.3.3 从数组最后添加和删除数据
var aList = [1,2,3,4];
aList.push(5);
alert(aList); //弹出1,2,3,4,5
aList.pop();
alert(aList); // 弹出1,2,3,4
7.3.4 根据下标添加和删除元素

arr.splice(start,num,element1,…,elementN)

参数解析:

  1. start:必需,开始删除的索引。
  2. num:可选,删除数组元素的个数。
  3. elementN:可选,在start索引位置要插入的新元素。

此方法会删除从start索引开始的num个元素,并将elementN参数插入到start索引位置。

var colors = ["red", "green", "blue"];
colors.splice(0,1);  //删除第一项
alert(colors);  //green,blue

colors.splice(1, 0, "yellow", "orange");  //从第一个索引位置插入两项数据
alert(colors);  //green,yellow,organge,blue

colors.splice(1, 1, "red", "purple");  //删除一项,插入两项数据
alert(colors);  //green,red,purple,orange,blue

八、循环语句

javascript中常用的循环语句有:

  • for
  • while
  • do-while

8.1 for循环

var array = [1, 4, 5];

for(var index = 0; index < array.length; index++){
    result = array[index];
    alert(result);
}

8.2 while循环

var array = [1, 4, 5];        
var index = 0;

while (index < array.length) {
    result = array[index];
    alert(result);
    index++;
}

**注意: ** 当条件成立的时候, while语句会循环执行

8.3 do-while循环

var array = [1, 4, 5];
var index = 0;

do {
    result = array[index];
    alert(result);
    index++;
} while (index < array.length);

注意: 当条件不成立的时候do语句也会执行一次

九、定时器

定时器就是在一段特定的时间后执行某段程序代码。

9.1 定时器的使用:

js 定时器有两种创建方式:

  1. setTimeout(func[, delay, param1, param2, …]) :以指定的时间间隔(以毫秒计)调用一次函数的定时器
  2. setInterval(func[, delay, param1, param2, …]) :以指定的时间间隔(以毫秒计)重复调用一个函数的定时器

setTimeout函数的参数说明:

  • 第一个参数 func , 表示定时器要执行的函数名
  • 第二个参数 delay, 表示时间间隔,默认是0,单位是毫秒
  • 第三个参数 param1, 表示定时器执行函数的第一个参数,一次类推传入多个执行函数对应的参数。
<script> 
    function hello(){ 
        alert('hello'); 
    } 

    // 执行一次函数的定时器
    setTimeout(hello, 500);
</script>

setInterval函数的参数说明:

  • 第一个参数 func , 表示定时器要执行的函数名
  • 第二个参数 delay, 表示时间间隔,默认是0,单位是毫秒
  • 第三个参数 param1, 表示定时器执行函数的第一个参数,一次类推传入多个执行函数对应的参数。
<script> 
    function hello(){ 
        alert('hello'); 
    } 
    // 重复执行函数的定时器
    setInterval(hello, 1000);
</script>

9.2 清除定时器

js 清除定时器分别是:

  • clearTimeout(timeoutID) 清除只执行一次的定时器(setTimeout函数)
  • clearInterval(timeoutID) 清除反复执行的定时器(setInterval函数)

clearTimeout函数的参数说明:

  • timeoutID 为调用 setTimeout 函数时所获得的返回值,使用该返回标识符作为参数,可以取消该 setTimeout 所设定的定时执行操作。
<script>
    function hello(){
        alert('hello');
        // 清除只执行一次的定时器
        clearTimeout(t1)
    }
    // 执行一次函数的定时器
    t1 = setTimeout(hello, 500);
</script>

clearInterval函数的参数说明:

  • timeoutID 为调用 setInterval 函数时所获得的返回值,使用该返回标识符作为参数,可以取消该 setInterval 所设定的定时执行操作。
<script> 
    function hello(){ 
        alert('hello'); 
    } 
    // 重复执行函数的定时器
    var t1 = setInterval(hello, 1000);

    function stop(){
        // 清除反复执行的定时器
        clearInterval(t1); 
    }  
</script> 

<input type="button" value="停止" οnclick="stop();">
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值