文章目录

  • JS简介
  • JS使用
  • JS输出
  • JS语句
  • JS语法
    • - JS值
    • - JS注释
    • - 标识符
    • - 对大小写敏感
    • - 驼峰式大小写
  • 变量
  • 数据类型
    • - 为什么需要数据类型
    • - 简单数据类型
    • - 数据类型的转换
    • - 关于undefined/NaN/null
  • 运算符
    • - 比较运算符
    • - 算数运算符
    • - 赋值运算符
    • - 逻辑运算符
    • - 运算符优先级
  • 分支
    • - 流程控制
    • - if语句
    • - switch语句
  • 循环
    • - for 循环
    • - while循环
    • - do-while循环
  • 数组
  • 函数
  • 作用域
  • 作用域链
  • 预解析
  • 对象
    • - 什么是对象
    • **- 为什么需要对象**
    • -对象里面有什么
    • - 创建对象
    • - 调用对象的属性和方法
    • - 遍历属性
  • 内置对象
    • - 什么是内置对象
    • Math
    • Date
    • Array
    • String

JS简介


JS使用

JavaScript 函数和事件
JavaScript 函数是一种 JavaScript 代码块,它可以在调用时被执行。

例如,当发生事件时调用函数,比如当用户点击按钮时。

  • 在 HTML 中,JavaScript 代码必须位于 <script></script> 标签之间。
  • JS写法
  1. 行内式(写在标签中,不推荐使用)

  1. 内嵌式(常用)
  • 脚本可被放置与 HTML 页面的 <body><head> 部分中,或兼而有之。
  • 把脚本置于 <body> 元素的底部,可改善显示速度,因为脚本编译会拖慢显示。
  1. 外部JS
    即在外部创建.JS文件, 在HTML中引用外部JS文件

在外部文件中放置脚本有如下优势

  1. 分离了 HTML 和代码
  2. 使 HTML 和 JavaScript 更易于阅读和维护
  3. 已缓存的 JavaScript 文件可加速页面加载

如需向一张页面添加多个脚本文件 - 请使用多个 script 标签

JS输出

主要使用以下三种输出方法

  • alert() 弹出警示框
  • console.log() 在控制台打印
  • prompt() 用户输入框
  • confirm 弹出确认取消按钮 确认返回true 取消返回false

需要注意 的是: 用户输入框里输入的任何值都是字符串. 有关数据类型的转换后面会具体说明

JS语句

JavaScript 语句由这些构成:值、运算符、表达式、关键词和注释。

var person = "Bill";

注意 : JS执行时逐行执行, 一旦出错, 下面的概不继续执行

  1. 分号 每条可执行的语句之后添加分号
  2. 空格 在运算符旁边( = + - * / )添加空格是个好习惯
  3. 关键词 ( 后面会具体解析每个关键词 )
    JavaScript 语句常常通过某个关键词来标识需要执行的 JavaScript 动作。

下面的表格列出了一部分将在教程中学到的关键词:

JS语法

- JS值

语句定义两种类型的值:混合值变量值

  • 混合值被称为字面量 : 就是 通过字符就能知道代表什么
  • 变量值被称为变量 : 用于存储数据值使用 var 关键词来声明变量。= 号用于为变量赋值。

- JS注释

双斜杠 ///* 与 */ 之间的代码被视为注释。

// 通常用于单行注释
/* 与 */通常用于段落的注释

- 标识符

标识符是名称。

在 JavaScript 中,标识符用于命名变量(以及关键词、函数和标签)。

在大多数编程语言中,合法名称的规则大多相同。

在 JavaScript 中,首字符必须是字母、下划线(-)或美元符号($)

连串的字符可以是字母、数字、下划线或美元符号。

提示: 数值不可以作为首字符。这样,JavaScript 就能轻松区分标识符和数值

- 对大小写敏感

所有 JavaScript 标识符对大小写敏感。

变量 lastNamelastname,是两个不同的变量。

- 驼峰式大小写

使用以小写字母开头的驼峰大小写:

firstName, lastName, masterCard, interCity

变量

变量是存储数据值的容器

在本例中,price1、price2 以及 total 是变量:

var price1 = 7;//声明一个变量并赋值,称为变量初始化
var price2 = 8;
var price3 = 12;
var total = price1 + price2 + price3;

在编程中,类似代数,我们使用变量(比如 price1)来存放值。
1. 标识符( 名称 ): price1是名称,也就是标识符. 我们要做到见名知意. 驼峰命名法.
2. 声明: ,存储数据值使用 var 关键词来声明变量。
3. 赋值: 赋值给变量,使用 =
4. 以 var 作为语句的开头,并以逗号分隔变量:
var person = "Bill Gates", carName = "porsche", price = 15000;

数据类型

变量能够保存多种数据类型:数值、字符串值、数组、对象等等

- 为什么需要数据类型

- 简单数据类型

布尔型只有两个值: true/false

  1. 表示字符串的长度(即组成字符串中字符的个数) : 变量名.length
  2. 数值和字符串相加时,JavaScript 将把数值视作字符串
    var x = 911 + "Porsche"; //911Porsche
  3. 从左向右计算表达式。不同的次序会产生不同的结果
    var x = 911 + 7 + “Porsche”; //918Porsche
    var x = “Porsche” + 911 + 7; //Porsche9117
    //在第一个例子中,JavaScript 把 911 和 7 视作数值,直到遇见 “Porsche”。
    //在第二个例子中,由于第一个操作数是字符串,因此所有操作数都被视为字符串。

JS的数据类型最大特点就是具有动态性
JS数据类型的确定是根据等号右边来确定的

var x;               // 现在 x 是 undefined
var x = 7;        // 现在 x 是数值
var x = "Bill";  // 现在 x 是字符串值 

检测数据类型 通过typeof检测数据类型

var num = 10; console.log(typeof num);

- 数据类型的转换

1. 把数字型转换为字符串型

(1) 变量.toString()

var num = 10;
var str = num.toString();

(2) 利用String

var num = 10;
console.log(String(num));

(3) 利用 + 拼接字符串的方法实现 也叫隐式转换

console.log(num + '');

2. 转换成数字类型(重点)

(1) parseInt(string) 函数 重点

console.log(parseInt('78')) //将string转换成整数型
console.log(parseInt('23.56')) //23  会取整  不会四舍五入
console.log(parseInt('78px')) // 78  会自动去掉单位
console.log(parseInt('rem78px')) NaN

(2) parseFloat(string) 函数 重点

parseFloat('118.36')  //将string类型转换成浮点型

(3) Number() 强制转换

Number('56')

(4) js 隐式转换(- * / ) 利用算术运算隐式转换为数值型

 '12'-0

前面提到的用户输入的数据为字符串型, 我们需要利用数据类型的转换 , 将其转换为数字型

3. 转换成布尔型
代表否定的值都会被转换为false 比如 ’ ', null, NaN, undefined, 0
其余都会转换成 true

console.log(Boolean(12));  //true
console.log(Boolean(''));   //false

- 关于undefined/NaN/null

1. undefined : 一个变量声明未赋值, 输出结果就是undefined 比如

var  sum;
console.log(sum);  //输出  undefined

2. NaN: 表示不是一个数 比如

var variable =  undefined;
console.log(variable + 1);  //输出 NaN

3. null : 代表空 比如

var space = null;
console.log(space + 1); //输出 1

运算符

- 比较运算符

: 两个数据进行比较时所使用的运算符, 比较运算后, 会返回一个布尔值(true/false) 作为比较运算结果

关于三元运算符

  1. 语法结构 条件表达式 ? 表达式1 : 表达式2
  2. 执行思路 如果条件表达式结果为真 则 返回 表达式1 的值, 否则返回 表达式2 的值
  3. 代码体验
    var num = 9; var res = num > 5 ? '是的' : '不是的'; //是的

- 算数运算符

关于递增

  • 前置递增 ++num 前置递增, 就是自加1, 类似于 num = num + 1, 但++num 写起来更简单 口诀: 先自加, 后返回值
  • 后置递增 num++ 就是自加1, 类似于 num = num + 1, 但num++ 写起来更简单 口诀: 先返回原值, 后自加

但我们用的最多的还是后置递增,num++

代码举例:

//前置
var a = 10;
++a; // a=11
var b = ++a +2; //++a = 12
console.log(b); //14
//后置
var c = 10;
c++; //c=11
var d = c++ +2; //先返回原值: c = 11, 所以d = 11 + 2 = 13,后自加: c++ = 12
console.log(d); //13

- 赋值运算符

关于等于号

  1. = 是赋值
  2. == 是数值相等
  3. === 是数据类型和数值都相等

- 逻辑运算符

关于短路运算

  • 原理: 当有多个表达式(值)时 , 左边的表达式值可以确定结果时,就不再继续运算右边的表达式的值
  • && 逻辑与短路: 如果 表达式1 为真, 则返回 表达式2 , 否则返回 表达式1
    代码举例
    console.log(123 && 456); //456
    console.log(0 && 456); //0
    console.log(0 && 456 && 1+3 && 4); //0
    console.log(' ' && 456); //' '
  • || 逻辑或短路 : 如果表达式1 为真 则返回 表达式1 , 否则返回表达式2 代码举例
    console.log(123 || 456); //123
    console.log(123 || 456 ||789); //123
    console.log(0 || 123 || 456); //123

- 运算符优先级

分支

- 流程控制

在一个程序执行的过程中,各条代码的执行顺序对程序的结果是有直接影响的. 很多时候我们要通过控制代码的执行顺序来实现我们要完成的功能.
简单理解 : 流程控制就是来控制我们的代码按照什么结构顺序来执行
流程控制主要有三种结构, 分别是 顺序结构, 分支结构, 循环结构, 这三种结构代表三种代码执行的顺序

- if语句

  • 语法结构
if (条件 1) {条件 1 为 true 时执行的代码块
}
else if (条件 2) { //如果只有一个条件  写一个if即可, else if 不用写条件 1 为 false 而条件 2 为 true 时执行的代码块} else {条件 1 和条件 2 同时为 false 时执行的代码块
}

- switch语句

  • 语法结构
switch(表达式) {case n:执行语句1break;case n:执行语句2break;default:默认执行语句
}
  • 例 ( 输入数字为几, 返回星期几 )
        var num = prompt('请输入1-7数字');switch (num) {case '1':alert('今天星期一');break;case '2':alert('今天星期二');break;case '3':alert('今天星期三');break;case '4':alert('今天星期四');break;case '5':alert('今天星期五');break;case '6':alert('今天星期六');break;case '7':alert('今天星期天');break;}

循环

- for 循环

  • 语法结构
for (语句 1; 语句 2; 语句 3) {要执行的代码块//语句 1 在循环(代码块)开始之前执行。//语句 2 定义运行循环(代码块)的条件。//语句 3 会在循环(代码块)每次被执行后执行。
}
for (i = 0; i < 5; i++) {text += "数字是 " + i + "<br>";//语句 1 在循环开始之前设置了一个变量(var i = 0)。//语句 2 定义运行循环的条件(i 必须小于 5)。//语句 3 会在代码块每次执行之后对值进行递增(i++)。
}

语句1: 通常,您会使用语句 1 来初始化循环中所使用的的变量(i = 0)。
语句2 : 通常语句 2 用于计算初始变量的条件。
语句3 : 通常语句 3 会递增初始变量的值。

- while循环

只要指定的条件为 true, while 循环会一直循环代码块 。

  • 语法结构
while (条件) {要执行的代码块
}
  • 例 ( 循环中的代码将运行,一遍又一遍,只要变量(i)小于 10 )
while (i < 10) {text += "数字是 " + i;i++;
}

- do-while循环

  • 语法结构
do {要执行的代码块
}while (条件);
  • 例 ( 该循环会执行至少一次,即使条件为 false,因为代码块会在条件测试之前执行 )
do {text += "The number is " + i;i++; // 不要忘记对条件中所用变量进行递增,否则循环永不会结束!}
while (i < 10);

break关键字: 跳出整个循环
continue 关键字 : 退出本次循环, 继续执行剩余次数循环


> for (var i = 1; i <= 5; i++){>     if (i ==3) {>     continue;
>     }
> console.log( '我正在吃第' + i + '个包子') ;
> }

数组

  • 什么是数组
  • 数组是一组数据的集合, 其中的每个数据被称作元素, 在数组中可以存放任意类型的元素.
  • 数组是一种将一组数据储存在单个变量名下的优雅方式.
  • 数组里的元素可以是任意数据
  • 创建数组
  1. [ ] 创建数组
var 数组名 = [各元素用逗号隔开] ;
var arr = [2,3,4,5] ;
  1. new 创建数组
var 数组名 = new Array() ;
var arr = new Array() ;

每个数组中的元素从0开始编号, 也是索引号,数组名[索引号] 这样可以获取数组中的元素, 比如

> var arr = [2,3,4,5] ;
> arr [0] = 2;
> arr [2] = 4; ```
  • 获取数组长度

数组名.length 可以获取数组长度, 即有几个元素, 数组名.length 是动态的,随对应数组长度变化而变化

var arr = [2,3,4,5] ;
console.log(arr.length) ; //4
  • 数组扩容
    通过改变数组长度,增加数组元素的个数
    或者
var arr = [2,3,4,5] ;
arr [4] = 9;

增加新元素

函数

  • 为什么需要是函数
    函数就是封装了一段可以被重复执行调用的代码块
    目的: 让大量代码重复使用
  • 函数的使用

分两步, 声明函数调用函数

function 函数名(形参) {//声明函数函数体return 变量名或其他字面量 ;//没有return时会返回undefined
}
console.log(函数名(实参)) ; //调用函数
或者
var 变量名2 = 函数名(实参);  //调用函数
console.log(变量名2) ;
  1. 形参实参可有可无, 根据需要
  2. 函数名一般用动词 ‘getXXX’

关于形参实参

  • 形参: 形式上的参数
    实参: 实际的参数
    形参用来接收实参的值
  • 参数作用: 函数内部某些值不确定时, 我们通过参数在调用函数时传递过去
  • 当实参与形参不匹配时

可以在函数中调用另一个函数

function callFun() {
console.log(222);
calledFun();
}
callFun();
function calledFun() {
console.log(111);
}

  • 匿名函数
    匿名函数也就是另一种函数表达式

语句:

var fun = function() {console.log('我是匿名函数');
}
fun();

作用域

什么时作用域:
就是代码名字(变量)在某个范围内起作用和效果
目的是为了提高程序的可靠性, 更重要的是减少命名冲突

  • 全局作用域
    整个script标签 或者是一个单独的js文件
  • 局部作用域(函数作用域)
    在函数内部就是局部作用域, 这个代码的名字只在函数内部其效果和作用
  • 全局变量
    在全局作用域下的变量 在全局下都可以使用
    注意: 如果在函数内部 没有声明直接赋值的变量也属于全局变量
  • 局部变量
    在局部作用域下的变量 即在函数内部的变量
    注意: 函数的形参也可以看作是局部变量

作用域链

预解析

我们js 引擎运行js 分两步: 预解析和代码执行

  1. 预解析 js引擎会把js里面所有的var 和fuction 提升到当前作用域的最前面
  2. 代码执行 按照代码书写顺序 从上往下执行

预解析分为 变量预解析(变量提升) 和 函数预解析(函数提升)

  • 变量提升 就是把所有的变量声明提升到当前的作用域最前面 不提升赋值操作
  • 函数提升 就是把所有的函数声明提升到当前作用域的最前面 不调用函数

代码练习

function exampleFun() {var a;a = b = c = 9;//相当于var a = 9;b = 9; c = 9; b和c直接赋值  没有var声明  当全局变量//集体声明 var a = 9;b = 9; c = 9;console.log(a);console.log(b);console.log(c);
}
exampleFun();
console.log(c);
console.log(b);
console.log(a);//输出
9
9
9
9
9
报错

对象

在JS中, 对象是王. 除了原始值, 都是对象. " 万物皆对象 ".

- 什么是对象

对象是命名值的集合

- 为什么需要对象

储存信息比数组结构更清晰, 更强大

-对象里面有什么

声明一个对象之后, 里面可声明其属性和方法

对象属性: 就是对象中的命名值, 可以是原始值、其他对象以及函数。

对象方法: 方法是可以在对象上执行的动作 是包含函数定义的对象属性。

- 创建对象

1. 用字面量创建对象
对象的字面量是{}

var obj = {uname : Allen,//声明属性skill : function() {//声明方法  用匿名函数声明对象方法console.log('唱歌');}
}

注意: 定义属性是用: , 属性与属性之间是用,隔开, 最后一个属性可以不加,
在对象中声明对象方法 所用的函数时匿名函数

2. 用object创建对象

var obj = new Object();//声明对象obj
obj.uname = Allen; //声明属性
obj.skill = function() {console.log('跳舞');
};

注意: 定义属性和方法是用 = , 以分号; 结尾

3. 构造函数创建对象

function Star(name, age) { //构造一个函数来封装对象相同的属性名和方法名 形参来接收创建对象传递过来的属性值, 方法值this.uname = name; //一定要写this.this.age = age;this.skill = function(sang) {console.log(sang);};
}
var Allen = new Star('Allen', 31); //new 创建一个对象, 括号里的属性值传递给构造函数的形参  也是调用函数 返回的是一个对象
Allen.skill('<立>'); //对象名.方法名() 括号里的值传递给方法函数的形参
var Andy = new Star('Andy', 30); //体现构造函数创建对象的优势, 可以利用一个构造函数创建多个对象, 减少代码重复
Andy.skill('<Li>');
  • 构造函数创建对象就相当于 Java里的类 (class)
  • 构造函数创建对象的目的就是 把对象里面一些相同属性相同方法 抽出来封装到函数里, 减少代码的重复
  • 注意: 为与一般函数区分 构造函数名字首字母要大写
    构造函数不需要return
    声明属性名时, 一定要在前加 this.
    创建对象时, 一定要new
  • 利用构造函数创建对象的过程我们也叫 对象实例化

- 调用对象的属性和方法

  1. 对象名.属性名 调用属性
    对象名.方法名() 调用方法
  2. 对象名['属性名'] 调用属性

- 遍历属性

for (var k in 对象名) {console.log(k); //输出得到的是属性名
console.log(对象名[k]); //输出得到的是属性值
}

内置对象

- 什么是内置对象

  • JS中的对象分为三种: 自定义对象, 内置对象, 浏览器对象
  • 前面两种对象是JS基础内容 浏览器对象属于JS独有 后面会有
  • 内置对象就是指 JS语言自带的一些对象, 这些对象供开发者使用, 并提供了一些常用的或是最基本而必要的功能(属性和方法)

我们平时查阅可以通过W3C或者MDN

Math

Math数学对象 不是一个构造函数 所以不需要new来调用 而是直接使用里面的属性和方法即可

  • 随机数方法
    random() 返回一个随机小数 [0,1)

这个方法里不跟参数!

代码:

console.log(Math.random()); //返回一个随机小数

要想得到两个数之间的随机整数 并且 包含这两个整数

function getRandom(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + 1;
}
console.log(getRandom(1,10));

  • 取整
  1. Math.floor() 向下取整 往最小了取值
console.log( Math.floor(1.1)); //1
console.log( Math.floor(1.9)); //1
  1. Math.ceil() 向上取整 往最大了取值
console.log( Math.floor(1.1)); //2
console.log( Math.floor(1.9)); //2
  1. Math.round() 四舍五入
console.log( Math.floor(1.1)); //1
console.log( Math.floor(1.9)); //2
console.log( Math.floor(1.5)); //2
console.log( Math.floor(-1.9)); //-2
console.log( Math.floor(-1.5)); //-1 往大了取

.5特殊 往大了取

  • 绝对值
Math.abs()
console.log(Math.abs(1)); //1
console.log(Math.abs(-1));//1
console.log(Math.abs('-1'));//1 隐式转换 会把字符串型转换成数字型
console.log(Math.abs('red'));//NaN
  • 最大值
console.log(Math.max());
console.log(Math.max(1,99,3)); //99

Date

  • Date方法的使用
  1. 获取当前时间前必须实例化var date = new Date()
  2. Date()构造函数里面的参数 如果括号里面有时间, 就返回参数里面的时间. 日期格式: '2022-2-1’
  • Date构造函数下的几种方法

需要注意的是: 月份返回时 小一个月 记得让月份+1
返回星期时, 只返回数字, 我们这样写

var date = new Date();
var arr = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六']; //星期日是第一个
var day = date.getDay();
console.log(arr[day]);
  • 获得总毫秒数(时间戳)

获得的是 距离1970年1月1日过了多少毫秒数

var date = new Date();
//1. valueOf() getTime()
console.log(valueOf());
console.log(getTime());
//2.最常用的写法
var dates = +new Date();
console.log(dates);
//3.H5新增
console.log(Date.now);
  • 倒计时
function countDown(time) {var nowTime = +new Date();var inputTime = +new Date(time);var times = (inputTime - nowTime) / 1000; //获取相差秒数var day = parseInt(times / 60 / 60 / 24);  //天day = day < 10 ? '0' + day : day; //格式化var hour = parseInt(times / 60 / 60 % 24);hour = hour < 10 ? '0' + hour : hour;var minute = parseInt(times / 60 % 60);minute = minute < 10 ? '0' + minute : minute;var second = parseInt(times % 60);second = second < 10 ? '0' + second : second;return day + '天' + hour + '时' + minute + '分' + second + '秒';}console.log(countDown('2022-2-1 00:00:00'));var date = Date();

Array

不用new

  • 增加数组元素
  1. push() 在数组的末尾追加数组元素
var arr = [1, 2, 3, 4, 5];
console.log(arr.push('ayy')); //6
console.log(arr); //[1, 2, 3, 4, 5, 'ayy']
  1. 在括号里直接写元素
  2. 会改变原先的数组和数组长度
  3. console.log(arr.push('ayy')); 返回的是数组长度
  1. unshift() 在数组开头追加数组元素 同push
var arr = [1, 2, 3, 4, 5];
console.log(arr.unshift('ayy')); //6
console.log(arr); //(6) ['ayy', 1, 2, 3, 4, 5]
  • 删除数组元素
  1. pop() 删除数组的最后一个元素
var arr = [1, 2, 3, 4, 5];
console.log(arr.pop()); //5
console.log(arr); // [1, 2, 3, 4]
  1. 括号里不写任何东西
  2. 会改变原先的数组和数组长度
  3. console.log(arr.pop()); 返回的是最后一个的元素
  1. shift() 删除数组的第一个元素 同pop() console.log(arr.shift()); 返回的是第一个的元素
var arr = [1, 2, 3, 4, 5];
console.log(arr.shift()); //1
console.log(arr); // [ 2, 3, 4, 5]

  • 获得数组元素的索引号

indexOf(数组元素) 获得该元素的索引号

var arr = [1, 2, 3, 4, 5, 3];
console.log(arr.indexOf(6)); //-1
console.log(arr.indexOf(3)); //2
console.log(arr.lastIndexOf(3));//5
  1. 当数组里没有括号里的元素的时候 返回 -1
  2. indexOf(数组元素)返回值是从前往后查找的 如果有重复的元素 返回的是靠前元素的索引号
  3. lastIndexOf(数组元素) 返回值是从后往前查找
  • 检测是否为数组

instanceof 检测是否为数组

var arr = [];
var obj = {}
console.log(arr instanceof Array); //true
console.log(obj instanceof Array); //false

h5新增方法 检测是否为数组
Array.isArray(arr)

  • 数组转换为字符串
    toString() join()
var arr = [1, 2, 3, 4, 5];
console.log(arr.toString()); //1,2,3,4,5
console.log(arr.join('-')); //1-2-3-4-5
console.log(arr.join()); // 1,2,3,4,5

toString() 括号里面没有东西
join()里面是连接字符串的符号 默认是 ’ , ’

  • 反转数组
    数组名.reverse()
var arr = [1, 2, 3, 4, 5];
arr.reverse();
console.log(arr);
  • 冒泡排序
    数组名.sort()
var arr1 = [2, 3, 6, 5, 4];
arr1.sort();
console.log(arr1);

注意: 冒泡排序的方法有个小bug

var arr1 = [2, 44, 6, 5, 4];
arr1.sort();
console.log(arr1);

输出是

所以 我们这样写 :

var arr1 = [2, 44, 6, 5, 4];
arr1.sort(function(a, b) {return a - b; //升序排列return b - a; //降序排列})console.log(arr1);
  • concat() 和 splice()
    concat() 连接数组
        var num1 = [1, 2, 3];var num2 = [4, 5, 6];var num3 = [7, 8, 9];var nums = num1.concat(num2, num3);console.log(nums); // [1, 2, 3, 4, 5, 6, 7, 8, 9]

splice() 删除指定个数数组元素

var numAdd = [1, 2, 3];
var removeNum = numAdd.splice(1, 0, 2); //从索引号为1的开始删 删除0个 在索引号为1元素后面添加'2'
console.log(numAdd); //[1, 2, 2, 3]
var numAdd = [1, 2, 3];
var removeNum = numAdd.splice(1, 1); //从索引号为1的开始删 删除1个
console.log(numAdd); //[1, 3]

String

注意 :

  • 字符串所有的方法 , 都不会修改字符串本身(字符串本身是不可变的) , 操作完成会返回一个新的字符串
  • 新命名之后原值是没有删除的,只是新开辟了一个空间存放新值
  • 连接字符串
    concat(str1,str2) 等价于 str1+str2 后者更常用
  • 截取指定位置的字符串
    substr(起始位置, 删除长度)
var str ='123';
var newStr = substr(1,1);
console.log(newStr); //2
  • 替换指定字符
    str.replace('要替换的字符', '替换为的字符')

注意 : 只会替换掉出现的第一个 后面重复的换不了

var str = '1223';
console.log(str.replace('2', '4')); //1423

要想实现 只要出现某个字符 都被替换 :

        var str = '122342256';while (str.indexOf('2') !== -1) {str = str.replace('2', '*');}console.log(str); //1**34**56
  • 获取指定位置的字符
  1. charAt(index) 获取指定位置的字符
var str = 'Allen';
console.log(str.charAt(3)); //e
  1. charCodeAt(index) 获得相应索引号字符的ASCII值
    目的 : 判断按下了哪个键
  2. str.[index] h5 新增
var str = 'Allen';
console.log(str[3]); //e
  • 字符串转换为数组

(前面有把数组转换为字符串用join) split('分隔符')

var str = 'A-l-l-e-n';
console.log(str.split('-')); //['A', 'l', 'l', 'e', 'n']
  • 字母大小写转换
    toUpperCase() 全部转换为大写
    toLowerCase() 全部转换为小写

JavaScript(一)——JS基础相关推荐

  1. (一)初识JavaScript——无处不在的JavaScript,js基础

    一 ."理解"JavaScript语言 人们总觉得对 C# 或者 Java 的了解,能为他们理解 JavaScript 的工作原理打下坚实的基础,然而这时一个陷阱.与其他语言相比 ...

  2. 【JavaScript】JS基础学习

    快速入门 2.1 我的第一个javascript <!DOCTYPE html> <html lang="en"> <head><meta ...

  3. 【JavaScript】js基础第02天笔记

    JavaScript基础笔记 地址

  4. 【JavaScript】js基础第01天笔记

    JavaScript基础笔记 地址

  5. JavaScript(JS基础)

    提示:JS的重点是让静态的页面产生一些变化 文章目录 JS编写方式 嵌入编写 外部编写 JS基本语法 使用let声明变量 使用var声明变量 JS中的数据类型 JS中运算符 ❗`==` 和 `===` ...

  6. 二、JavaScript语言--JS基础--JavaScript进阶篇--DOM对象 控制HTML元素

    1.认识DOM 文档对象模型DOM(Document Object Model)定义访问和处理HTML文档的标准方法.DOM 将HTML文档呈现为带有元素.属性和文本的树结构(节点树). 先来看看下面 ...

  7. JavaScript简介---JS基础

    JavaScript简介 JavaScript起源 早年间,人们上网都是使用速度很

  8. 小汤学编程之JavaScript学习day01——认识JS、JS基础语法

    一.认识JS 1.JavaScript的组成     2.浏览器执行js简介     3.JavaScript是什么?     4.扩展内容 二.JS基础语法 1.代码书写位置     2.变量    ...

  9. js基础--javascript基础概念之函数

    js基础--javascript基础概念之函数 引用w3c介绍: 函数是由事件驱动的或者当它被调用时执行的可重复使用的代码块. JavaScript 函数语法 函数就是包裹在花括号中的代码块,前面使用 ...

最新文章

  1. echarts柱状图同一页面点击不同得按钮切换_不可思议,这个PPT居然有按钮滑动效果...
  2. mybatis使用find_in_set导致cpu占用过高
  3. Objective-C中把URL请求的参数转换为字典
  4. 文巾解题 10. 正则表达式匹配
  5. 楼市调控要“围堵”更要“疏通”
  6. php分页采集数据,php实现分页调取数据库记录
  7. 【C语言】第九章 复杂数据类型与结构体 题解
  8. 对于GetMemory()函数
  9. 95-20-020-启动器-Cloneable
  10. c#位图转换未矢量图_PS基础:像素与分辨率,位图与矢量图
  11. Linux串口驱动分析及移植
  12. oracle显示工资计算税款,工资税收如何计算公式
  13. (一)线段树入门--补充与其他模板
  14. ChinaSoft 论坛巡礼 | CCF-华为胡杨林基金-系统软件专项论坛
  15. 在电子电路中,为什么要进行电气隔离?
  16. 【墙角数枝梅,凌寒独自开】代码改变未来
  17. 弘辽科技:端午节拼多多有优惠吗?力度如何?
  18. Ubuntu(18.04)不能上网解决办法
  19. Linux 设置开机自启动
  20. iOS 九宫格抽奖(弱鸡)

热门文章

  1. 医药公司药品品种分析
  2. 获取环状要素的外环点、内环点
  3. 【QT学习】扫描二维码获取登录验证码(完整源码)
  4. 平面中判断线段与矩形是否相交
  5. linux、win7环境下安装anaconda、matplotlib、theano和lasagne库
  6. 网络层——ARP协议
  7. 象棋人工智能算法的C++实现(三)——注重功能分区!!!
  8. 蚂蚁如何控制运营开支
  9. 零点工作室暑假集训(牛客周赛 Round 1)
  10. Android 推送 整合小米、个推、jpush