WEB前端(3)—— 初识JavaScript

10 篇文章 1 订阅

目录

什么是JavaScript:

JavaScript的特点:

JavaScript的关键字:

JavaScript的变量:

JavaScript的数据类型:

类型转换:

 JavaScript的运算符:

分支循环:

if语句:

switch选择语句:

for循环:

for in 循环:

数组:

数组的定义:

遍历数组:

删除数组:

插入元素:

合并元素:

数组转字符串:

数组元素倒序:

对象:

对象的属性:

函数:

函数的声明:

函数的调用:


什么是JavaScript:

JavaScrpt,是一种直译式脚本语言,是一种动态类型,弱类型,基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,是浏览器的一部分,广泛用于客户端的脚本语言中,最早是在HTML(标准通用标记语言下的一个应用)网页上使用的,用于为HTML网页增加动态功能。目前JavaScript 被广泛用于Web应用开发,常用于为网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果。

JavaScript的特点:

JavaScript 具有以下四个方面的特点:

*是一种解释性脚本语言(代码不进行预编译),

*主要用于向HTML(标准通用标记语言下的一个应用)页面添加交互行为,

*可以直接嵌入HTML页面,但写成单独的JS文件有利于结构和行为的分离,

*跨平台特性,在绝大多数浏览器的支持下,可以在多种平台下运行(如Windows,Linux,Max,Android,iOS等)。

JavaScript的关键字:

breakelsenewvar
casefinallyreturnvoid
catchforswitchwhile
continuefunctionthiswith
defaultifthrow
deleteintry
doinstanceoftypeof

JavaScript的变量:

在JavaScript中,变量是存储信息的容器,变量存在两种类型的值,即原始值和引用值。

*原始值:存储在栈中的简单数据段,也就是说,它们的值直接存储在变量访问的位置。

*引用值:存储在堆中的对象,也就是说,存储在变量处的值是一个指针指向存储对象的内存处。

JavaScript的数据类型:

在JavaScript中,数据类型表示数据的类型,JavaScript语言的每一个值都属于某一种数据类型。JavaScript的数据主要分为以下两种。

*值类型(原始值):字符串(String),数字(Number),布尔(Boolean),对空(Null),未定义(Undefined),Symbol(ES6 引入了一种新的原始数据类型,表示独一无二的值)。

*引用数据类型(引用值):对象(Object),数组(Array),函数(Function)。

类型转换:

在JavaScript中,如果一个变量的类型不是想要的,那么可以通过类型转换实现目的,类型转换常用的有以下五种。

*Number(变量):将变量转化为数字类型。

*String(变量):将变量转化为字符串类型。

*Boolean(变量):将变量转化为布尔值类型。Boolean会将非零的数字转化为true,将零转为false。

*parseFloat(变量):将变量转化为浮点类型。

*parseInt(变量):将变量转化为整数类型。

代码演示和效果图如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>JavaScript</title>
</head>
<body>
    <script>
        var a = '123';
        var b = a+6;
        document.write('没用Number转换前:'+b);
        document.write('<br/>');
        var c = Number(a) + 6;
        document.write('用Number转换后:'+c);
        document.write('<hr/>');
        var x = 33;
        var y = x + 66;
        document.write('没用String转换前:'+y);
        document.write('<br/>');
        var m = String(x) + 66;
        document.write('用String转换后:'+m);
        document.write('<hr/>');
        var t = 13;
        var f = 0;
        var b1 = Boolean(t);
        var b2 = Boolean(f);
        document.write('用Boolean转换后:t = '+ b1 +',f = '+b2);
    </script>
</body>
</html>

 JavaScript的运算符:

赋值运算符:

var s = "hello";    //将hello这个字符串赋值给变量s

算数运算符:

var a = 3 + 2;    //加法
var b = 3 - 2;    //减法
var c = 3 * 2;    //乘法
var d = 3 / 2;    //除法
var e = 3 * 2;    //取余

比较运算符:

var a = 3;
var b = 2;
var c = a > b;     //大于,结果为true
var d = a < b;     //小于,结果为false
var e = a >= b;    //大于或等于,结果为true
var f = a <= b;    //小于或等于,结果为false
var g = a != b;    //不等于,结果为true
var aa = '3';      //aa被赋值为字符串类型
var bb = 3;        //bb被赋值为数字类型
var cc = aa == bb; //返回为true,两个等号表示只要值相同就可以相等,返回true
var dd = aa === bb;//返回为false,3个等号表示除值外必须类型也相同才能返回true

逻辑运算符:

var a = 3,b = 9,c = 7,d = 5;
//返回为false,&&表示前后两个表达式必须全为true,整个表达式才能返回true
var as = (a<b)&&(c<d);
//返回为true,||表示前后两个表达式只要有一个为true,整个表达式就能返回true
var bs = (a<b)||(c<d);
//返回为true,a>b返回为false,!表示取反,因此返回true
var cs = !(a>b);

分支循环:

if语句:

if条件语句表示假如的意思,在程序运行中提供判断的功能。

var a = 9,b = 17;
if(a>7){
    document.write('a>b');
}else if(a==b){
    document.write('a=b');
}else{
    document.write('a<b');
}
        

switch选择语句:

switch选择语句表示多条件选择。

var day = new Date().getDay();
    switch(day){
    case 0;
      x = "今天是周日";
      break;
    case 1;
      x = "今天是周一";
      break;
    case 2;
      x = "今天是周二";
      break;
    case 3;
      x = "今天是周三";
      break;
    case 4;
      x = "今天是周四";
      break;
    case 5;
      x = "今天是周五";
      break;
    case 6;
      x = "今天是周六";
      break;
    }
    document.write(x);
    
    

for循环:

语法格式:

for(语句1;语句2;语句3){

被执行的代码块

}

*continue:越过本次循环,继续下一次循环。

*break:跳过整个循环,循环结束。

for in 循环:

var person = {id:1,name:"张三",age:20};    //定义一个对象
for (key in person){
    document.write(key+":"+person[key]);
    document.write('<br/>');
}

数组:

数组对象是使用单独的变量名存储一系列的值,可理解为一个容器装了一堆元素。JavaScript中数组包含的属性和方法如下表所示。

方法描述
concat()连接两个或更多的数组,并返回结果
join()把数组的所有元素放入一个字符串,元素通过指定的分隔符进行分隔
pop()删除并返回数组的最后一个元素
posh()向数组的末尾添加一个或者更多元素,并返回新的长度
reverse()颠倒数组中元素的顺序
shift()删除并返回数组的第一个元素
slice()从某个已有的数组返回选定的元素
sort()对数组的元素进行排序
splice()删除元素,并向数组添加元素
toSoruce()返回该对象的源代码

数组的定义:

方法一:使用new关键字创建一个Array对象,可直接在内存中创建一个数组空间,然后向数组中添加元素。

var mycar = new Array();
//也可以使用一个整数自变量控制数组的容量
var mycars = new Array(3);

方法二:使用new关键字创建一个Array对象的同时为数组赋予n个初始值。

var mycar = new Array("Saab","Volvo","BMW");

方法三:不用new,直接用[]声明一个数组,同时可以直接赋予初始值,是最简便的一种声明方式。

var mycars = ["Saab","Volvo","BMW"];

遍历数组:

方法一:先声明数组的长度,然后使用for循环遍历整个数组。

var mycars = ["Saab","Volvo","BMW"];
var len = mycars.length;    //获取数组长度
for(i=0;i<len;i++){
    document.write(mycars[i]);
    document.write('<br/>');
}

方法二:使用for...in遍历,无须获得数组长度。

var mycars = ["Saab","Volvo","BMW"];
for(key in mycars){
    document.write(key+":"mycars[key]);
    document.write('<br/>');
}

删除数组:

pop方法:从尾部删除,删除后元素从数组上剥离并返回。

var mycars = ["Saab","Volvo","BMW"];
var car = mycars.pop();
document.write(mycars);
document.write('<br/>');
document.write(car);

shift方法:从头部删除元素,从头部剥离并返回。

var  mycars = ["Saab","Volvo","BMW"];
var car = mycars.shift();        //从头部删除
document.write(car);
document.write('<br/>');
document.write(car);

插入元素:

unshift方法:从头部插入,语法为数组.unshift(元素1)。

var mycars = ["Saab","Volvo","BMW"];
//从数组头部插入一个新的元素,返回新的数组长度
var newlen = mycars.unshift("奔驰");
document.write(newlen);
document.write('<br/>');
document.write(mycars);

splice方法:从指定位置插入指定个数的元素。

var mycars = ["Saab","Volvo","BMW"];
mycars.splice(1,0,"宝马","奇瑞","奔驰");//从索引1位置删除0个并插入3个元素
document.write(mycars);

合并元素:

JavaScript 为数组提供 concat 方法将多个数组连接成一个数组。

var arr = [1,3,5];
var arr1 = [2,4,6];
var arr2 = [7,8,9];
var newArr = arr.concat(arr1,arr2);//合并3个数组
document.write(newArr);            //输出

数组转字符串:

在JavaScript 中,为数组 join 方法将数组的元素合并成一个用指定分割符合并器来的字符串。

var mycars = ['宝马','奔驰','奇瑞','标致','捷达'];
var cars = mycars.join("|");
document.write(cars);

数组元素倒序:

在JavaScript 中,调用数组的 reverse 方法可以将数组中的元素倒序排列。

var mycars = ['宝马','奔驰','奇瑞','标致','捷达'];
mycars.reverse();                                //数组倒序
document.write(mycars);

对象:

Object(对象)是一个以键值对形式存储属性的集合,每个属性有特定的名称,以及与名称相对应的值。

对象的声明:

方法一:new Object(): 声明一个类,然后使用new关键字创建一个拥有独立内存区域和指向原型的指针的对象。

var User = function(id,name){
    this.id = id;
    this.name = name;
}
var user1 = new User(1,"张三");
document.write(user1.name);
document.write("<br/>");
var user2 = new User(2,"李四");
document.write(user2.name);

方法二:{}:对象直接申明法,利用现有值看,直接实例化一个对象。

var user1 = {id:1,name:"张三"};
var user2 = Object.ceate({id:2,name:"李四"});
document.write(user1.name);
document.write("<br/>");
document.write(user2.name);

对象的属性:

添加属性:为已存在的对象添加属性。

var user = {};        //声明一个对象
user.id = 1;          //为对象添加属性
user["name"]="张三";  //既可以用点访问属性,也可以用字符串作为键访问属性
user.age = 20;
user["career"] = "学生";
document.write(user.name);
document.write("<br/>");
document.write(user["age"]):

删除属性:删除已有的属性。

var user = {};        //声明一个对象
user.id = 1;          //为对象添加属性
user["name"]="张三";  //既可以用点访问属性,也可以用字符串作为键访问属性
user.age = 20;
user["career"] = "学生";
delete user.name;    //删除对象的name属性
document.write(user.name);
document.write("<br/>");
document.write(user["age"]):

检测属性:

var user = {};        //声明一个对象
user.id = 1;          //为对象添加属性
user["name"]="张三";  //既可以用点访问属性,也可以用字符串作为键访问属性
user.age = 20;
user["career"] = "学生";
if('career' in user){
    alert("有career属性");
}else{
    alert("无career属性");
}

函数:

函数是一组延迟动作集的定义,可以通过事件触发或者在其他脚本中进行调用。

function 函数名 (参数){
    函数体
    return 返回值;
}

函数的声明:

function fun1(){
    document.write("我是函数fun1");
    documten.write("<br/>");
    }
    fun1();
    
    var fun2 = function(){
        document.write("我是函数fun2");
        documten.write("<br/>");
    }
    fun2();

    var fun3 = function(){
        document.write("我是函数fun3");
    };

函数的调用:

//传值调用
function fun1(str){
    str = "你好";
}
var a = "hello";
fun1(a);
document.write("传值调用,a="+a);
document.write("<br/>");
//传值调用
function fun2(person){
    person.name = "李四";
}
var b = {name:"张三");
fun2(b);
doucment.write("传址调用,person.name="+b.name);

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值