JS

JavaScript

是前端的一门编程语言

注释

// 单行注释
/*
    多行注释1
    多行注释2
*/

js的引入方式

1.script标签内部直接书写
<script>
    alert(123)
</script>

2.通过script标签src书写,引入外部js文件
<script src = 'js.js'></script>

js里面的变量

在js中声明变量需要使用关键字

var 声明的是全局有效

let 只在局部有效

js变量的命名规范

  1. 数字 字母 下划线 $
  2. 不能用关键字作为变量名
  3. 推荐使用驼峰体命名

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
posted @ 2019-11-17 23:11  shinzz  阅读(121)  评论(0编辑  收藏  举报