JavaScript教程

1.javascript简介

JavaScript 最初由网景公司开发的一种脚本语言,被大量地应用于网页中,用以实现网页和浏览者的动态交互。目前几乎所有的浏览器都可以很好地支持 JavaScript。由于 JavaScript 可以及时响应浏览者的操作,控制页面的行为表现,提高用户体验,因而已经成为前端开发人员必须掌握的语言之一。

JavaScript 是为满足制作动态网页的需要而诞生的一种编程语言,在 HTML 基础上,使用 JavaScript 可以开发交互式(网页)Web。JavaScript 的出现使得网页和用户之间实现了实时、动态和交互的关系。

2.JavaScript的组成部分

标准化后的 JavaScript 包含了 3 个组成部分:

1.ECMAScript

脚本语言的核心内容,定义了脚本语言的基本语法和基本对象。现在每种浏览器都有对ECMAScript标准的实现。

2.DOM(Document Object Model)

文档对象模型,浏览器中的DOM把整个网页规划成由节点层级构成的树状结构的文档,用DOM API可以轻松地删除、添加和替换文档树结构中的节点。

3.BOM(Browser Object Model)

浏览器对象模型,描述了对浏览器窗口进行访问和操作的方法和接口。

3.JavaScript的特点

JavaScript 是一种运行在浏览器中的主要用于增强网页的动态效果、提高与用户的交互性的编程语言。相比于其他编程语言,它具有许多特点,主要包括以下几方面。

  1. 解释性

JavaScript 不同于一些编译性的程序语言,它是一种解释性的程序语言,它的源代码不需要经过编译,直接在浏览器中运行时进行解释。

  1. 动态性

JavaScript 是一种基于事件驱动的脚本语言,它不需要经过 Web 服务器就可以对用户的输入直接做出响应。

  1. 跨平台性

JavaScript 依赖于浏览器本身,与操作环境无关。任何浏览器,只要具有JavaScript脚本引擎,就可以执行JavaScript。目前,几乎所有用户使用的浏览器都内置了JavaScript脚本引擎。

  1. 安全性

JavaScript 是一种安全性语言,它不允许访问本地的硬盘,同时不能将数据存到服务器上,不允许对网络文档进行修改和删除,只能通过浏览器实现信息浏览或动态交互。这样可有效地防止数据丢失。

  1. 基于对象

JavaScript 是一种基于对象的语言,同时也可以被看作是一种面向对象的语言。这意味着它能运用自己已经创建的对象。因此,许多功能可以来自于脚本环境中对象的方法与脚本的相互作用。

4.JavaScript的使用方式

1.行内式( 直接将js代码写在标签的内部)

<a href="javascript:alert('hello javascript');">点一下试试</a>
<button type="button" onclick="javascript:alert('hello javascript');">点一下</button>

2.内嵌式(将js代码写在script标签中)

推荐
<head>
    <script type="text/javascript">
		alert('hello javascript');
	</script>
</head>

script标签可以放在body中,也可以放在head中(推荐

3.外链式(将js代码写在外部独立的文件中)

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

5.JavaScript中的输入和输出方式

5.1输入方式

使用window对象提供的prompt对象可以实现用户数据的输入

window.prompt('请输入数据');

5.2输出方式

使用警告窗口实现数据的输出

window.alert('hello javascript');

输出数据到控制台

console.log('hello javascript');

输出数据到页面

document.write('hello javascript');

6.JavaScript注释

JavaScript的注释分为两种类型:

1.单行注释

//单行注释

2.多行注释

 /* 多行注释*/

7.JavaScript变量

**1.什么是变量**

通俗的讲,变量类似与一个存放东西的容器,从计算机的角度讲,变量指代的是计算机内存中的一段内存空间,用于存数据

**2.JavaScript中如何定义一个变量**

1.使用var关键字声明变量

var age ;//程序执行到这一步时,会在内存中开辟一段内存空间
age=18;  //将数字18放入刚刚开辟的空间中


var age=18; //定义变量的同时,赋值

2.变量命名规则

1.变量可以由数字,字母、英文下划线,美元$组成

2.不能以数字开头 a1 1a

3.不能使用关键字或者保留字 var for while ......

4.严格区分大小写 age Age 是不同的变量

5.变量名字要见名知意

6.使用驼峰命名法 (首字母小写,后面单词的首字母大写 myName)

案例:

1.使用变量输出自己的信息 (姓名 性别 年龄 学历 专业 邮箱 工资 电话)

2.交换两个变量的值

8.JavaScript数据类型

JavaScript中数据的类型大体可以分为两种,简单类型和复杂类型

简单类型

数值型number
字符型string
布尔型boolean
未初始化undefined
空值null

复杂类型包含数组和对象等

js中的变量是一种动态数据类型,也就是变量本身是没有数据类型的,只有赋值以后才有了类型

var a="张三";

如何判定数据的类型?

在js中判断一个变量的数据类型可以使用 typeof 运算符

var num = 20;
console.log(typeof num); //number
var name="张三";
console.log(typeof name); //string
var blen = true;
console.log(typeof blen); //boolean
var age;
console.log(typeof age) //undefined
var n = null;
console.log(typeof n) //object
var a=function(){}
console.log(typeof a) //function

数据类型的转换

1.其他类型转化成字符串类型

//数字类型转换成字符串  
var num  =10;
var temp = num.toString();
console.log(typeof temp);
console.log(String(num));
//使用 + 实现隐式转换
console.log(num+'');
//布尔类型转换成字符串
var b = true;
var temp =b.toString();
console.log(typeof temp);

2.其他类型转化成数字类型

//字符型转化为数字型
var age  = prompt('请输入您的年龄');
console.log( typeof age);
age = parseInt(age);
console.log( typeof age);

var p = '20px';
console.log(parseInt(p));

var price =prompt('请输入单价');
console.log( typeof price);
price = parseInt(price);//取整 不会四舍五入
console.log(price);
//小数的转换
price = parseFloat(price);
console.log(price);
//使用 Number(变量名)转换
var p = '120';
p = Number(p);
console.log(p);
console.log( typeof p);

//使用 - * / 实现隐式转换
var num = '10';
num = num -0;
console.log( num);
console.log( typeof num);

3.其他类型转换为布尔类型

console.log(Boolean('')); //false
console.log(Boolean(0)); //false
console.log(Boolean(NaN));//false
console.log(Boolean(null));//false
console.log(Boolean(undefined));//false

9.JavaScript 运算符

9.1JavaScript 算数运算符

算数运算符用于对数字执行算数运算:

运算符描述
+加法
-减法
*乘法
/除法
%系数(取余)
++递加
--递减
//加法
var x = 7;
var y = 8;
var z = x + y;
console.log(z);

//除法
x = 3;
y = 2;
console.log(3/2);
console.log(3%2);

/*  ++ --
		
	1:后置++ 是将自身的值赋给变量,之后自身再加1;

	2:前置++ 是将自身+1 后的值赋给变量,同时自身加1;

*/
var a = 1;
b = a ++;
console.log('a=' + a + '   ' +'b='+ b); //  a = 2 , b = 1

var a = 1 ;
b = ++a ;
console.log('a=' + a + '   ' +'b='+ b)//a = 2 b=2

9.2JavaScript 赋值运算符

赋值运算符向 JavaScript 变量赋值

运算符例子等同于
=x = yx = y
+=x += yx = x + y
-=x -= yx = x - y
*=x *= yx = x * y
/=x /= yx = x / y
%=x %= yx = x % y
var x=2;
var y=3;
x+=2;
y-=1;
console.log(x);
console.log(y);

9.3JavaScript 比较运算符

运算符描述
==等于
===等值等型
!=不相等
!==不等值或不等型
>大于
<小于
>=大于或等于
<=小于或等于
?三元运算符
var a=1;
var b=2;
console.log(a==b);

var a=1;
var b='1';
console.log(a==b);	//true
console.log(a===b);	//false
console.log(a!=b);	//false
console.log(a!==b);	//true


// 三元运算符
var a=1;
var b=2;

var str = a>b ? "a大于b":"a小于b"; //当条件为真时 执行前面的表达式  否则执行后面的表达式
console.log(str);

9.4JavaScript 逻辑运算符

运算符描述
&&逻辑与
||逻辑或
!逻辑非

var b = true;
var c= false;
console.log(b&&c); //false
console.log(b||c);
console.log(!b);//false

9.5JavaScript 类型运算符

运算符描述
typeof返回变量的类型。
instanceof返回 true,如果对象是对象类型的实例。

9.6JavaScript 位运算符

位运算符处理 32 位数。

该运算中的任何数值运算数都会被转换为 32 位的数。结果会被转换回 JavaScript 数值。

运算符描述例子等同于结果十进制
&5 & 10101 & 000100011
|5 | 10101 | 000101015
~~ 5~0101101010
^异或5 ^ 10101 ^ 000101004

10.JavaScript 流程控制

流程控制(代码按照一定的顺序进行执行)分类:

10.1顺序结构

代码自上而下依次执行,所有的代码都将被执行

10.2分支结构

根据不同的条件,执行不同路径的代码(代码多选一),得到不同的结果

if分支:

语法结构:

//单分支
if(条件表达式){
    //条件满足时执行的代码
  }

//根据年龄判断是否成年

//双分支
if(条件表达式){
    //条件满足时执行的代码
  }else{
    //条件不满足时执行的代码
  }

//判断年份是否是闰年 能被4整除且不能被100整除  能被400整除


//多分支
if(条件表达式1){
    //条件满足时执行的代码
  }else if(条件表达式2){
    //条件满足时执行的代码
  }else if(条件表达式3){
    //条件满足时执行的代码
  }......
   else{
      //以上条件都不满足时执行的代码 
  }

//根据分数 给出成绩等级

switch分支

语法结构:

switch(表达式){
   case value1:
      //满足条件执行代码
       break;
    case value2:
      //满足条件执行代码
       break;
    case value3:
      //满足条件执行代码
       break;
    ....
    default:
        //以上条件都不满足执行代码  
  }  

//楼层查询案例

switch 注意事项:

1.表达式一般是一个变量 方便进行值的替换

2.表达式和case里面的值在匹配的时候 ,是做的全等运算 ===

3.如果当前的case没有break,则不会退出,会继续执行下一个case


10.3循环结构

循环是反复不断的执行某些代码块

需求:打印输出100次hello world

for 循环

/*
	for循环语法结构 一般使用在已知循环次数的情况下
	初始化变量:用于计数
	条件表达式:循环的终止条件
	操作表达式:更新计数器
*/
for(初始化变量;条件表达式;操作表达式){
    
    //需要循环执行的代码
    
}

//for循环的执行过程

for(var i=1;i<=100;i++){
    
    console.log('hello');
}

while循环

//while循环语法结构  一般使用在未知循环次数的情况下
while(条件表达式){
    //需要循环执行的代码
}

do...while 循环

//do  while循环语法结构  一般使用在要先执行在判定的条件下
do{
    
    //需要循环执行的代码
    
}while(条件表达式)

break continue的使用

break用于终止整个循环

for (var i = 0; i <10 ; i++) {
    if (i==3){
        break;
    }
    console.log(i)
}

//结束离其最近的循环体
 for (var j = 0; j <5 ; j++) {
     for (var i = 0; i <10 ; i++) {
         if (i==3){
             break;
         }
         console.log(i)
     }
 }

continue用于终止某一次循环

for (var i = 0; i <5 ; i++) {
     if (i==3){
         continue;
     }
     console.log(i)
 }

11.JavaScript 数组

1.数组可以用一个变量名存储所有的值,并且可以用变量名访问任何一个值

2.数组中的每个元素都有自己的的ID(index 下标),以便它可以很容易地被访问到

1、数组的创建

1.创建一个数组

var myCars=new Array() myCars[0]="Saab"; myCars[1]="Volvo" myCars[2]="BMW"

2.创建一个数组并指定长度,注意不是上限,是长度

var array = new Array([size]);

3.创建一个数组并赋值

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

4.字面形式

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

2.数组的元素的访问

通过指定数组名以及索引号码,你可以访问某个特定的元素。

var name=myCars[0];

myCars[0]="Opel";

3.数组的遍历

使用for循环实现数组的遍历

var array = [23, 12, 5, 19, 3];

for (var i = 0; i < array.length; i++) {
    console.log(array[i])
}

4.数组元素的添加、删除、截取、合并、拷贝

1.将一个或多个新元素添加到数组结尾,并返回数组新长度

arrayObj. push();

var array3 =[1,2,3,4,5];
//添加元素到数组的最后  返回新数组的长度
var len =  array3.push(12)
console.log(array3)
console.log(len)

2.将一个或多个新元素添加到数组开始,数组中的元素自动后移,返回数组新长度

arrayObj.unshift();

//添加元素到数组的最前面  返回新数组的长度
len =  array3.unshift(0);
console.log(array3)
console.log(len)

3.将一个或多个新元素插入到数组的指定位置,插入位置的元素自动后移,返回删除后的元素。

arrayObj.splice(start,deleteNum,insert);

/*
 插入元素到数组指定的位置
 第一个参数 start  从哪里开始
 第二个参数 delNum 删除元素的个数
 第三个参数 insert  插入的新元素
 
 1.只写一个参数 会从指定开始的位置开始删除直到数组的末尾  以数组的形式返回删除的元素
 2.写两个参数  会从指定的位置 删除指定个数的元素 并以数组的形式返回
 3.写三个参数  从指定位置开始 删除指定的元素,并将新元素从指定开始的位置添加   返回删除的元素
*/
var arr = array3.splice(0)
console.log(arr)
console.log(array3)
console.log(array3.toString())
var arr = array3.splice(1,2)
console.log(arr)
console.log(array3.toString())
console.log(array3.toString())
var arr = array3.splice(1,2,28)
console.log(arr)
console.log(array3.toString())

4.移除最后一个元素并返回该元素值

arrayObj.pop();

var array = [23, 12, 5, 19, 3];
var temp = array.pop();
console.log(temp)
console.log(array.toString())

5.移除最前一个元素并返回该元素值,数组中元素自动前移

arrayObj.shift();

var array = [23, 12, 5, 19, 3];
var temp = array.shift();
console.log(temp)
console.log(array.toString())

6.删除从指定位置deletePos开始的指定数量deleteCount的元素,数组形式返回所移除的元素

arrayObj.splice(deletePos,deleteCount);

var array = [23, 12, 5, 19, 3];
var temp = array.splice(1,4);
console.log(temp)
console.log(array.toString())

7.以数组的形式返回数组的一部分,注意不包括 end对应的元素,如果省略 end 将复制start 之后的所有元素

arrayObj.slice(start, [end]);

var array = [23, 12, 5, 19, 3];
var temp = array.slice(1,3)
console.log(temp)
console.log(array.toString())

8.将多个数组(也可以是字符串,或者是数组和字符串的混合)连接为一个数组,返回连接好的新的数组

arrayObj.concat([item1[, item2[, . . . [,itemN]]]]);

9.返回数组的拷贝数组,注意是一个新的数组,不是指向

arrayObj.concat();

var array4 = [10,11,13,14]
var a = array4.concat()
console.log(array4)
console.log(a)

5.数组的排序和翻转

反转元素(最前的排到最后、最后的排到最前),返回数组地址

arrayObj.reverse();

var array4 = [10,11,13,14]
array4.reverse();
console.log(array4)

对数组元素排序,返回数组地址

arrayObj.sort();

var array4 = [10,11,13,14,100,21]
console.log(array4)
array4.sort()
console.log(array4)
var array4 = [10,11,13,14,100,21]
console.log(array4)
array4.sort(function(a,b){return a-b})
console.log(array4)

sort()默认的排列方式是按照字符的unicode码进行排列的,在排列数值的时候会出现问题,因此需要依赖一个比值函数function(a,b){return a-b}

编写代码实现数组的排序

var array = [10,2,16,30,8]
console.log(array)
//冒泡排序法
for (let i = 0; i <array.length-1 ; i++) {
    for (let j = 0; j <array.length-i-1 ; j++){
        if(array[j]>array[j+1]){
            var temp = array[j]
            array[j] = array[j+1]
            array[j+1] = temp
        }
    }
}

6.获取数组的长度

length 属性

//1.判断数组中元素的个数
var array3 = [10,11,13,14,100,21]
console.log(array3.length)

12.JavaScript 函数

JavaScript 函数是被设计为执行特定任务的代码块,会在某代码调用它时被执行

为何使用函数?

  1. 能够对代码进行复用:只要定义一次代码,就可以多次使用它。

  2. 能够多次向同一函数传递不同的参数,以产生不同的结果。

JavaScript 函数语法

JavaScript 函数通过 function 关键词进行定义,其后是函数名和括号 (),函数名规则与变量名相同,圆括号可包括由逗号分隔的参数:(参数 1, 参数 2, ...),由函数执行的代码被放置在花括号中:{ }

function name(参数 1, 参数 2, 参数 3) {
    要执行的代码
}

案例:

1.计算两个数字的和

 //计算两个数字的和
    var num1 = 1;
    var num2 = 2;
    var result = num1+num2;
/*
	以上代码的写法无法实现代码的复用,如果后续还需要计算两个数字的和 
	以上代码还需要再写一次 造成代码的冗余,这时可以考虑将代码进行封装
	写成函数的形式  因为使用函数可以实现代码的复用
*/

function add(num1,num2){
    var res = num1+num2
    console.log(res)
}

//调用函数  函数不会再页面加载后自动执行  需要手动的调用
 add(1,2);

//为了后续能使用计算的结果 可以使用return将结果返回

function add(num1,num2){
    var res = num1+num2
    return res
}

var a = add2(1,2);
console.log(a+2); //5

//利用函数 实现简易计算器

function add(num1,num2){

    return num1/1+num2/1;

}
function sub(num1,num2){

    return num1-num2;

}
function mult(num1,num2){

    return num1*num2;

}
function div(num1,num2){

    return num1/num2;

}

let num1 = prompt('请输入第一个数')
let num2 = prompt('请输入第二个数')
let operator = prompt('请输入运算符')


switch(operator){
    case  '+':
        alert(add(num1,num2))  
        break;
    case  '-':
        alert(sub(num1,num2))
        break;
    case  '*':
         alert(mult(num1,num2))
        break;
    case  '/':
         alert(div(num1,num2))
        break;
    default:
        console.log('请输入正确的运算符!')
}

使用函数实现数组排序代码的复用

案例:

1.提示用户输入一个数组的长度

2.用户输入数组中的数值 ,要保证用户输入的值是数值

3.将用户输入值组成的数组排序

//获取数组

 var len = prompt('请输入数组的长度')
 var array = new Array();
do{
    var num = prompt('请输入数字')
    if(isNaN(num)){
        continue
    }
    array.push(num);
}while (array.length<len)
    
//函数实现代码复用
function getArray(length){
    var array = new Array();
    do{
        var num = prompt('请输入数字')
        if(isNaN(num)){
            continue
        }
        array.push(num);
    }while (array.length<length)

        return array;
}

//数组排序
function sortArray(ary){
    var array = ary
    for (var i = 0; i <array.length-1 ; i++) {
        for (var j = 0; j <array.length-i-1; j++){
            if(array[j]>array[j+1]){
                var temp = array[j]
                array[j] = array[j+1]
                array[j+1] = temp
            }
        }
	} 
    return array;
}

13.JavaScript 作用域

作用域:

变量或者函数可以访问的范围,分为两种:

1.全局作用域:在全局使用var关键字声明的变量 ,可以再任意的范围访问

2.函数作用域: 在函数内使用var关键字声明的变量,只能在函数内部访问

var a = 10
console.log(a) //10

/*
	js程序执行前 会将使用var关键字声明的变量提升所在作用域的最前面,
	但是赋值还是在原来的位置
*/

console.log(a) //undefined
var a = 10
//以上代码作用域提升后 可以改写为
var a;
console.log(a) //undefined
a=10


function fn(){
    //局部变量作用域提升
    console.log(b) //undefined
    var b = 10;
}

var a = 10; //全局作用域下的变量  全局变量
function fn(){
    var b = 2  //函数作用域下使用var关键字声明的变量 局部变量
    // console.log(a)
    console.log(b)
    
}

console.log(a)
fn() //调用函数  执行函数体内的代码
console.log(b); //b是在函数内部定义的 在外部无法访问


var n = 10

function fn(){
    console.log(n//undefined
    var n = 5
}

console.log(n) 



var m =1

function fn3(m){ //参数在函数中相当于一个局部变量
    
    m=m+3
    
}
console.log(m)


function fn4(){
    
    var a=b=c=2;
    
}
fn4();
console.log(a) //a is not defined
console.log(b) //2
console.log(c) //2

递归

函数的内部自己调用自己本身,默认是一个死循环,因此在使用递归的时候需要添加限制条件

function say(){
    alert('hello')
    say()
}
say()

var i = 0
function say(){
    i++
    alert('hello')
    if(i===3){
       return; //结束函数体的执行 
    }
    say()
}
say();

案例:

计算1-5之间所有整数的和

function getSum(num){
    if(num==1){
        return   1
    }
    return num+getSum(num-1)
}

菲波那切数列

function fb(n){
    if(n==1 || n==2){
        return 1;
    }
    return fb(n-1)+fb(n-2)  
}

14.JavaScript自定义对象

什么是对象

现实世界的万物皆对象,对象是看得见,摸得着的事物,比如一个水杯, 一个人

创建对象的三种方式

1.利用字面量创建对象

使用大括号,括号里包含了对象的属性和方法

var obj = {}  //空对象

var ob = {
    name:‘张三’,
    age:20,
    sex:'男'
    say:function(){
       console.log('hello')
    }
    
}

//使用对象  访问对象的属性 对象名.属性名  对象名['属性名']
ob.name

//调用对象的方法  对象名.方法名()
ob.say()

2.利用new Object创建对象

 var obj = new Object()
 o.name = "zs"
 o.age =20
 o.say = function(){
    alert('123')
 }

alert(o.name)
alert(o.age)
o.say()

3.利用构造函数创建对象

构造函数是一种特殊的函数,只要是用来初始化对象,即为对象的成员变量赋初始值,它总与new关键字一起使用,可以把对象中的一些公共的属性和方法抽取出来,然后封装到函数里。

//构造函数的语法格式

function 函数名(){
    this.属性名=值,
    this.方法名 = function(){}
    
}

new  构造函数名()


function Person(name,age,sex) {
    this.sex = sex,
    this.name = name,
    this.age = age
    this.say = function () {
        alert('345')
    }
}

var person =   new Person('zsan',25,'nan');
alert(person.age)
person.say()


//遍历对象
for(key in person){
    alert(key)
    alert(person[key])
}

15.JavaScript 常用内置对象

15.1 String(字符串)对象

length 属性返回字符串的长度

var txt = "ABCDEF";
var sln = txt.length;

indexOf() 方法返回字符串中指定文本首次出现的索引(位置):0 是字符串中的第一个位置,1 是第二个,2 是第三个 ...

var str = "The full name of China is the People's Republic of China.";
var pos = str.indexOf("China");

lastIndexOf() 方法返回指定文本在字符串中最后一次出现的索引

var str = "The full name of China is the People's Republic of China.";
var pos = str.indexOf("China");

如果未找到文本, indexOf() 和 lastIndexOf() 均返回 -1

var str = "The full name of China is the People's Republic of China.";
var pos = str.indexOf("USA");

两种方法都接受作为检索起始位置的第二个参数

var str = "The full name of China is the People's Republic of China.";
var pos = str.indexOf("China", 18);
var pos = str.lastIndexOf("China", 50);

search() 方法搜索特定值的字符串,并返回匹配的位置:

var str = "The full name of China is the People's Republic of China.";
var pos = str.search("locate");

提取部分字符串

有三种提取部分字符串的方法:

  • slice(start, end)

  • substring(start, end)

  • substr(start, length)


slice() 方法

slice() 提取字符串的某个部分并在新字符串中返回被提取的部分。

该方法设置两个参数:起始索引(开始位置),终止索引(结束位置)。

这个例子裁剪字符串中位置 7 到位置 13 的片段:

var str = "Apple, Banana, Mango";
var res = str.slice(7,13); //Banana

如果某个参数为负,则从字符串的结尾开始计数。这个例子裁剪字符串中位置 -12 到位置 -6 的片段:

var str = "Apple, Banana, Mango";
var res = str.slice(-13,-7); //Banana

如果省略第二个参数,则该方法将裁剪字符串的剩余部分:

var res = str.slice(7);

或者从结尾计数:

var res = str.slice(-13);

substring() 类似于 slice()

不同之处在于 substring() 无法接受负的索引。

var str = "Apple, Banana, Mango";
var res = str.substring(7,13);

res 的结果是:

Banana

如果省略第二个参数,则该 substring() 将裁剪字符串的剩余部分。


substr() 类似于 slice()

不同之处在于第二个参数规定被提取部分的长度

var str = "Apple, Banana, Mango";
var res = str.substr(7,6);

res 的结果是:

Banana

如果省略第二个参数,则该 substr() 将裁剪字符串的剩余部分

var str = "Apple, Banana, Mango";
var res = str.substr(7);

res 的结果是:

Banana, Mango

如果首个参数为负,则从字符串的结尾计算位置。

var str = "Apple, Banana, Mango";
var res = str.substr(-5);

res 的结果是:

Mango

第二个参数不能为负,因为它定义的是长度


replace() 方法用另一个值替换在字符串中指定的值,默认地,replace() 只替换首个匹配

str = "Please visit Microsoft and Microsoft!";
var n = str.replace("Microsoft", "W3School");

replace() 对大小写敏感。因此不对匹配 MICROSOFT

str = "Please visit Microsoft!";
var n = str.replace("MICROSOFT", "W3School");

如需执行大小写不敏感的替换,请使用正则表达式 /i(大小写不敏感)

str = "Please visit Microsoft!";
var n = str.replace(/MICROSOFT/i, "W3School");

如需替换所有匹配,请使用正则表达式的 g 标志(用于全局搜索)

str = "Please visit Microsoft and Microsoft!";
var n = str.replace(/Microsoft/g, "W3School");

toUpperCase() 把字符串转换为大写,toLowerCase() 把字符串转换为小写

var text1 = "Hello World!";
var text2 = text1.toLowerCase();
    text2 = text1.toUpperCase();

concat() 连接两个或多个字符串

var text1 = "Hello";
var text2 = "World";
text3 = text1.concat(" ",text2);

concat() 方法可用于代替加运算符,下面两行是等效的

var text = "Hello" + " " + "World!";
var text = "Hello".concat(" ","World!");

trim() 方法删除字符串两端的空白符

var str = "       Hello World!        ";
alert(str.trim());

提取字符串字符的方法

charAt() 方法返回字符串中指定下标(位置)的字符串

var str = "HELLO WORLD";
str.charAt(0);   // 返回 H
​
/*charCodeAt() 方法返回字符串中指定索引的字符 unicode 编码*/
​
var str = "HELLO WORLD";
str.charCodeAt(0); 


可以通过 split() 将字符串转换为数组

var txt = "a,b,c,d,e";   // 字符串
txt.split(",");          // 用逗号分隔
txt.split(" ");          // 用空格分隔
txt.split("|");          // 用竖线分隔

案例:

统计字符串中出现次数最多的字符是哪个,出现了几次 str = "abcdeereeryhhssqqq"

15.2数字对象 Math

Math.PI; //3.1415

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值