JavaScript(一)——JS基础
文章目录
- 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写法
- 行内式(写在标签中,不推荐使用)
- 内嵌式(常用)
- 脚本可被放置与 HTML 页面的
<body>
或<head>
部分中,或兼而有之。- 把脚本置于
<body>
元素的底部,可改善显示速度,因为脚本编译会拖慢显示。
- 外部JS
即在外部创建.JS文件, 在HTML中引用外部JS文件
在外部文件中放置脚本有如下优势:
- 分离了 HTML 和代码
- 使 HTML 和 JavaScript 更易于阅读和维护
- 已缓存的 JavaScript 文件可加速页面加载
如需向一张页面添加多个脚本文件 - 请使用多个 script 标签
JS输出
主要使用以下三种输出方法
alert()
弹出警示框console.log()
在控制台打印prompt()
用户输入框confirm
弹出确认取消按钮 确认返回true 取消返回false
需要注意 的是: 用户输入框里输入的任何值都是字符串. 有关数据类型的转换后面会具体说明
JS语句
JavaScript 语句由这些构成:值、运算符、表达式、关键词和注释。
var person = "Bill";
注意 : JS执行时逐行执行, 一旦出错, 下面的概不继续执行
- 分号 每条可执行的语句之后添加分号
- 空格 在运算符旁边( = + - * / )添加空格是个好习惯
- 关键词 ( 后面会具体解析每个关键词 )
JavaScript 语句常常通过某个关键词来标识需要执行的 JavaScript 动作。
下面的表格列出了一部分将在教程中学到的关键词:
JS语法
- JS值
语句定义两种类型的值:混合值和变量值。
- 混合值被称为字面量 : 就是 通过字符就能知道代表什么
- 变量值被称为变量 : 用于存储数据值使用
var 关键词
来声明变量。= 号用于为变量赋值。
- JS注释
双斜杠 //
或 /* 与 */
之间的代码被视为注释。
//
通常用于单行注释
/* 与 */
通常用于段落的注释
- 标识符
标识符是名称。
在 JavaScript 中,标识符用于命名变量(以及关键词、函数和标签)。
在大多数编程语言中,合法名称的规则大多相同。
在 JavaScript 中,首字符必须是字母、下划线(-)或美元符号($)。
连串的字符可以是字母、数字、下划线或美元符号。
提示: 数值不可以作为首字符。这样,JavaScript 就能轻松区分标识符和数值
- 对大小写敏感
所有 JavaScript 标识符对大小写敏感。
变量 lastName
和 lastname
,是两个不同的变量。
- 驼峰式大小写
使用以小写字母开头的驼峰大小写:
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
- 表示字符串的长度(即组成字符串中字符的个数) :
变量名.length
- 当数值和字符串相加时,JavaScript 将把数值视作字符串。
例var x = 911 + "Porsche"; //911Porsche
- 从左向右计算表达式。不同的次序会产生不同的结果
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 : 表达式2
- 执行思路 如果条件表达式结果为真 则 返回 表达式1 的值, 否则返回 表达式2 的值
- 代码体验
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 , 否则返回 表达式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 + '个包子') ;
> }
数组
- 什么是数组
- 数组是一组数据的集合, 其中的每个数据被称作元素, 在数组中可以存放任意类型的元素.
- 数组是一种将一组数据储存在单个变量名下的优雅方式.
- 数组里的元素可以是任意数据
- 创建数组
- 用
[ ]
创建数组
var 数组名 = [各元素用逗号隔开] ;
var arr = [2,3,4,5] ;
- 用
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) ;
- 形参实参可有可无, 根据需要
- 函数名一般用动词 ‘getXXX’
关于形参实参
- 形参: 形式上的参数
实参: 实际的参数
形参用来接收实参的值- 参数作用: 函数内部某些值不确定时, 我们通过参数在调用函数时传递过去
- 当实参与形参不匹配时
可以在函数中调用另一个函数
function callFun() {
console.log(222);
calledFun();
}
callFun();
function calledFun() {
console.log(111);
}
- 匿名函数
匿名函数也就是另一种函数表达式
语句:
var fun = function() {console.log('我是匿名函数');
}
fun();
作用域
什么时作用域:
就是代码名字(变量)在某个范围内起作用和效果
目的是为了提高程序的可靠性, 更重要的是减少命名冲突
- 全局作用域
整个script标签 或者是一个单独的js文件 - 局部作用域(函数作用域)
在函数内部就是局部作用域, 这个代码的名字只在函数内部其效果和作用 - 全局变量
在全局作用域下的变量 在全局下都可以使用
注意: 如果在函数内部 没有声明直接赋值的变量也属于全局变量 - 局部变量
在局部作用域下的变量 即在函数内部的变量
注意: 函数的形参也可以看作是局部变量
作用域链
预解析
我们js 引擎运行js 分两步: 预解析和代码执行
- 预解析 js引擎会把js里面所有的var 和fuction 提升到当前作用域的最前面
- 代码执行 按照代码书写顺序 从上往下执行
预解析分为 变量预解析(变量提升) 和 函数预解析(函数提升)
- 变量提升 就是把所有的变量声明提升到当前的作用域最前面 不提升赋值操作
- 函数提升 就是把所有的函数声明提升到当前作用域的最前面 不调用函数
代码练习
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
- 利用构造函数创建对象的过程我们也叫 对象实例化
- 调用对象的属性和方法
对象名.属性名
调用属性
对象名.方法名()
调用方法对象名['属性名']
调用属性
- 遍历属性
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));
- 取整
Math.floor()
向下取整 往最小了取值
console.log( Math.floor(1.1)); //1
console.log( Math.floor(1.9)); //1
Math.ceil()
向上取整 往最大了取值
console.log( Math.floor(1.1)); //2
console.log( Math.floor(1.9)); //2
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方法的使用
- 获取当前时间前必须实例化
var date = new Date()
- 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
- 增加数组元素
push()
在数组的末尾追加数组元素
var arr = [1, 2, 3, 4, 5];
console.log(arr.push('ayy')); //6
console.log(arr); //[1, 2, 3, 4, 5, 'ayy']
- 在括号里直接写元素
- 会改变原先的数组和数组长度
console.log(arr.push('ayy'));
返回的是数组长度
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]
- 删除数组元素
pop()
删除数组的最后一个元素
var arr = [1, 2, 3, 4, 5];
console.log(arr.pop()); //5
console.log(arr); // [1, 2, 3, 4]
- 括号里不写任何东西
- 会改变原先的数组和数组长度
console.log(arr.pop());
返回的是最后一个的元素
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
indexOf(数组元素)
返回值是从前往后查找的 如果有重复的元素 返回的是靠前元素的索引号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
- 获取指定位置的字符
charAt(index)
获取指定位置的字符
var str = 'Allen';
console.log(str.charAt(3)); //e
charCodeAt(index)
获得相应索引号字符的ASCII值
目的 : 判断按下了哪个键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基础相关推荐
- (一)初识JavaScript——无处不在的JavaScript,js基础
一 ."理解"JavaScript语言 人们总觉得对 C# 或者 Java 的了解,能为他们理解 JavaScript 的工作原理打下坚实的基础,然而这时一个陷阱.与其他语言相比 ...
- 【JavaScript】JS基础学习
快速入门 2.1 我的第一个javascript <!DOCTYPE html> <html lang="en"> <head><meta ...
- 【JavaScript】js基础第02天笔记
JavaScript基础笔记 地址
- 【JavaScript】js基础第01天笔记
JavaScript基础笔记 地址
- JavaScript(JS基础)
提示:JS的重点是让静态的页面产生一些变化 文章目录 JS编写方式 嵌入编写 外部编写 JS基本语法 使用let声明变量 使用var声明变量 JS中的数据类型 JS中运算符 ❗`==` 和 `===` ...
- 二、JavaScript语言--JS基础--JavaScript进阶篇--DOM对象 控制HTML元素
1.认识DOM 文档对象模型DOM(Document Object Model)定义访问和处理HTML文档的标准方法.DOM 将HTML文档呈现为带有元素.属性和文本的树结构(节点树). 先来看看下面 ...
- JavaScript简介---JS基础
JavaScript简介 JavaScript起源 早年间,人们上网都是使用速度很
- 小汤学编程之JavaScript学习day01——认识JS、JS基础语法
一.认识JS 1.JavaScript的组成 2.浏览器执行js简介 3.JavaScript是什么? 4.扩展内容 二.JS基础语法 1.代码书写位置 2.变量 ...
- js基础--javascript基础概念之函数
js基础--javascript基础概念之函数 引用w3c介绍: 函数是由事件驱动的或者当它被调用时执行的可重复使用的代码块. JavaScript 函数语法 函数就是包裹在花括号中的代码块,前面使用 ...
最新文章
- echarts柱状图同一页面点击不同得按钮切换_不可思议,这个PPT居然有按钮滑动效果...
- mybatis使用find_in_set导致cpu占用过高
- Objective-C中把URL请求的参数转换为字典
- 文巾解题 10. 正则表达式匹配
- 楼市调控要“围堵”更要“疏通”
- php分页采集数据,php实现分页调取数据库记录
- 【C语言】第九章 复杂数据类型与结构体 题解
- 对于GetMemory()函数
- 95-20-020-启动器-Cloneable
- c#位图转换未矢量图_PS基础:像素与分辨率,位图与矢量图
- Linux串口驱动分析及移植
- oracle显示工资计算税款,工资税收如何计算公式
- (一)线段树入门--补充与其他模板
- ChinaSoft 论坛巡礼 | CCF-华为胡杨林基金-系统软件专项论坛
- 在电子电路中,为什么要进行电气隔离?
- 【墙角数枝梅,凌寒独自开】代码改变未来
- 弘辽科技:端午节拼多多有优惠吗?力度如何?
- Ubuntu(18.04)不能上网解决办法
- Linux 设置开机自启动
- iOS 九宫格抽奖(弱鸡)