目录
- JavaScript
- 注释
- js的引入方式
- js里面的变量
- js变量的命名规范
- js常量
- js中的数据类型
- 运算符
- 算数运算符
- 比较运算符
- 逻辑运算符
- 赋值运算符
- 三元运算符
- 流程控制
- if-else
- if-else else-if
- switch
- for
- while
- 函数
- 无参函数
- 有参函数
- 匿名函数
- 立即执行函数
- 箭头函数
- 函数的全局变量和局部变量
- 自定义对象
- Date对象
- json对象
- RegExp对象
JavaScript
是前端的一门编程语言
注释
// 单行注释
/*
多行注释1
多行注释2
*/
js的引入方式
1.script标签内部直接书写
<script>
alert(123)
</script>
2.通过script标签src书写,引入外部js文件
<script src = 'js.js'></script>
js里面的变量
在js中声明变量需要使用关键字
var 声明的是全局有效
let 只在局部有效
js变量的命名规范
- 数字 字母 下划线 $
- 不能用关键字作为变量名
- 推荐使用驼峰体命名
js代码默认是以分号作为结束符
js常量
const 定义常量,不能被修改
js中的数据类型
数值类型 number
? NaN 表示不是一个数字
字符类型String
? 常用的方法:
方法 | 说明 |
---|---|
.length | 返回长度 |
.trim() | 移除空白 |
.trimLeft() | 移除左边的空白 |
.trimRight() | 移除右边的空白 |
.charAt(n) | 返回第n个字符 |
.concat(value, ...) | 拼接 |
.indexOf(substring, start) | 子序列位置 |
.substring(from, to) | 根据索引获取子序列 |
.slice(start, end) | 切片 |
.toLowerCase() | 小写 |
.toUpperCase() | 大写 |
.split(delimiter, limit) | 分割 |
string.slice(start,stop)和string.substring(start,stop)的区别
两者的相同点:
如果start等于end,返回空字符串
如果stop参数省略,则取到字符串末
如果某个参数超过string的长度,这个参数会被替换为string的长度
substirng()的特点:
如果 start > stop ,start和stop将被交换
如果参数是负数或者不是数字,将会被0替换
slice()的特点:
如果 start > stop 不会交换两者
如果start小于0,则切割从字符串末尾往前数的第abs(start)个的字符开始(包括该位置的字符)
如果stop小于0,则切割在从字符串末尾往前数的第abs(stop)个字符结束(不包含该位置字符)
对象 object
? js中所有的事物都是对象,对象只是带有属性和方法的特殊数据类型
? 数组的常用方法:
方法 | 说明 |
---|---|
.length | 数组的大小 |
.push(ele) | 尾部追加元素 |
.pop() | 获取尾部的元素 |
.unshift(ele) | 头部插入元素 |
.shift() | 头部移除元素 |
.slice(start, end) | 切片 |
.reverse() | 反转 |
.join(seq) | 将数组元素连接成字符串 |
.concat(val, ...) | 连接数组 |
.sort() | 排序 |
.forEach() | 将数组的每个元素传递给回调函数 |
.splice() | 删除元素,并向数组添加新元素。 |
.map() | 返回一个数组元素调用函数处理后的值的新数组 |
布尔值 Boolean
? 区别于python ,true和false都是小写
undefined
symbol 表示独一无二的值
运算符
算数运算符
+ - * / % ++ --
x++会先赋值再进行自增1运算,而++x会先进行自增运算再赋值!
比较运算符
> >= < <= != == === !==
== 弱等于,会自动转换数据类型
=== 强等于 不会自动转换
逻辑运算符
&& || !
赋值运算符
= += -= *= /=
三元运算符
x=1
y=2
res = x>y ? 10 : 20
如果条件成立返回?后面的,否则返回:后面的
流程控制
if-else
var a = 10;
if (a > 5){
console.log("yes");
}else {
console.log("no");
}
if-else else-if
var a = 10;
if (a > 5){
console.log("a > 5");
}else if (a < 5) {
console.log("a < 5");
}else {
console.log("a = 5");
}
switch
var day = new Date().getDay();
switch (day) {
case 0:
console.log("Sunday");
break;
case 1:
console.log("Monday");
break;
default:
console.log("...")
}
switch中的case子句通常会加break语句,否则程序会继续执行后续case中的语句
for
for (var i = 0 ;i<10;i++){
console.log(i)
}
while
var i = 0;
while (i < 10) {
console.log(i);
i++;
}
函数
无参函数
function f1() {
console.log("Hello world!");
}
有参函数
function f2(a, b) {
console.log(arguments); // 内置的arguments对象
console.log(arguments.length);
console.log(a, b);
}
匿名函数
var sum = function(a, b){
return a + b;
}
sum(1, 2);
立即执行函数
// 立即执行函数 书写立即执行的函数,首先先写两个括号()()这样防止书写混乱
(function(a, b){
return a + b;
})(1, 2);
箭头函数
var f = v => v;
// 等同于
var f = function(v){
return v;
}
函数中的arguments参数
相当于将传入的参数全部包含
函数的全局变量和局部变量
局部变量:
在JavaScript函数内部声明的变量(使用 var)是局部变量,所以只能在函数内部访问它(该变量的作用域是函数内部)。只要函数运行完毕,本地变量就会被删除。
全局变量:
在函数外声明的变量是全局变量,网页上的所有脚本和函数都能访问它。
变量生存周期:
JavaScript变量的生命期从它们被声明的时间开始。
局部变量会在函数运行以后被删除。
全局变量会在页面关闭后被删除。
自定义对象
本质上就是键值对的集合,和python的字典一样,但是js中的对象是通过.属性来得到值的
Date对象
创建date对象
var d1 = new Date();
console.log(d1.toLocaleString());
/*date括号内可以不加参数,
或者参数为日期字符串,
或者为毫秒数,
或者是年月日小时分钟秒毫秒*/
date对象的方法
var d = new Date();
//getDate() 获取日
//getDay () 获取星期
//getMonth () 获取月(0-11)
//getFullYear () 获取完整年份
//getYear () 获取年
//getHours () 获取小时
//getMinutes () 获取分钟
//getSeconds () 获取秒
//getMilliseconds () 获取毫秒
//getTime () 返回累计毫秒数(从1970/1/1午夜)
json对象
json字符串转换成对象
var obj = JSON.parse(str1)
对象转换成json对象
var str = JSON.stringify(obj)
RegExp对象
定义正则表达式的两种方式
// 定义正则表达式两种方式
var reg1 = new RegExp("^[a-zA-Z][a-zA-Z0-9]{5,11}");
var reg2 = /^[a-zA-Z][a-zA-Z0-9]{5,9}$/;
// 正则校验数据
reg1.test('jason666')
reg2.test('jason666')
/*第一个注意事项,正则表达式中不能有空格*/
// 全局匹配
var s1 = 'egondsb dsb dsb';
s1.match(/s/)
s1.match(/s/g)
var reg2 = /^[a-zA-Z][a-zA-Z0-9]{5,9}$/g
reg2.test('egondsb');
reg2.test('egondsb');
reg2.lastIndex;
/*第二个注意事项,全局匹配时有一个lastIndex属性*/
// 校验时不传参数
var reg2 = /^[a-zA-Z][a-zA-Z0-9]{5,9}$/
reg2.test();
reg2.test(undefined);
var reg3 = /undefined/;
reg3.test();
RegExp
原文地址:https://www.cnblogs.com/faye12/p/11869627.html