day34 前端基础之JavaScript

ECMAScript 6

尽管 ECMAScript 是一个重要的标准,但它并不是 JavaScript 唯一的部分,当然,也不是唯一被标准化的部分。实际上,一个完整的 JavaScript 实现是由以下 3 个不同部分组成的:

核心(ECMAScript)
文档对象模型(DOM) Document object model (整合js,css,html)
浏览器对象模型(BOM) Broswer object model(整合js和浏览器)
简单地说,ECMAScript 描述了JavaScript语言本身的相关内容。 JavaScript 是脚本语言
JavaScript 是一种轻量级的编程语言。 JavaScript 是可插入 HTML 页面的编程代码。 JavaScript 插入 HTML 页面后,可由所有的现代浏览器执行。 JavaScript 很容易学习。

js简介

// 这是多行注释
/*
这是多行注释
*/
结束符:(;)为结束符

变量

1.JavaScript的变量名可以使用_,数字,字母,$组成,不能以数字开头。
2.声明变量使用 var 变量名; 的格式来进行声明
var a = 1;
a = 10;
console.log(a) # 相当于print
// 定义常量
const pi = 3.14
console.log(pi) let b = 1
console.log(b)

js数据类型

JavaScript不区分整型和浮点型,就只有一种数字类型。
1、.length 返回长度
2、.trim() 移除空白
3、.trimLeft() 移除左边的空白
4、.trimRight() 移除右边的空白
5、.charAt(n) 返回第n个字符
6、.concat(value, ...) 拼接
7、.indexOf(substring, start) 子序列位置
8、.substring(from, to) 根据索引获取子序列
9、.slice(start, end) 切片
10、.toLowerCase() 小写
11、.toUpperCase() 大写
12、.split(delimiter, limit) 分割
代码:
var a = '123'
var b = 123
var c = 123.12
var d = '123.12' console.log(typeof a);
console.log(typeof b);
console.log(typeof c);
console.log(b + parseInt(a)); # 转为数字类型,进行计算
console.log(Number(a)) # 转为数字类型 var s = 'hello baby'
var a = 'meng'
console.log(s.charAt(4)); # 取出索引4的值
console.log(s.concat(a)) # 拼接字符用的 var name = 'meng'
var age = 18
// var s = 'my name is ${name} my age is ${age}' # 用单引号是错误的
var s = `my name is ${name}, my age is ${age}` # 模板语法
console.log(s)

布尔值

区别于Python,true和false都是小写。
# (空字符串)、0、null、undefined、NaN都是false。
var a = true;
var b = false;

数组

一、常用方法:
.length 数组的大小
.push(ele) 尾部追加元素
.pop() 获取尾部的元素
.unshift(ele) 头部插入元素
.shift() 头部移除元素
.slice(start, end) 切片
.reverse() 反转
.join(seq) 将数组元素连接成字符串
.concat(val, ...) 连接数组
.sort() 排序
.forEach() 将数组的每个元素传递给回调函数
.splice() 删除元素,并向数组添加新元素。
.map() 返回一个数组元素调用函数处理后的值的新数组
二、代码:
var a = 'a|b|c|d|v'
console.log(a.split('|')) # 转为数组 ["a", "b", "c", "d", "v"] var a = [1,6,2,3,9]
a.sort()
console.log(a) # 排序为升序 [1, 2, 3, 6, 9]
console.log(a.reverse()) # 反转
forEach()语法:
var a = [10,20,30]
for(var i = 0;i<a.length;i++){
console.log(i) # 遍历a里的值
}

运算符

算数运算符

一、算数运算符
var x = 10
var res1 = x++ //先是10
var res2 = ++x // 加完1在来res2在加一
console.log(res1) //先赋值在加一
console.log(res2) // 先加一在赋值

逻辑运算符

二、逻辑运算符
&&:相等于python里的and
||:等于or
!:等于not

if流程控制

三、if流程控制
var a = 10
if (a>11){ # 和python语法一样,把':'换成'{}'
console.log('yes')
}else{
console.log('no')
}

switch

四、switch
注意:# switch中的case子句通常都会加break语句,否则程序会继续执行后续case中的语句。
var day = new Date().getDay();
switch (day){
case 0: # 条件
console.log('yes');
break;
case 1 :
console.log('no');
break;
default: # 相等于else
console.log('end****')
}
输出结果:end****

三元运算符

五、三元运算符
var a = 1;
var b = 2;
var c = a > b ? a : b; # a大于b,走' :'前面的,不大于走后面的
console.log(c)
输出结果:2
结论:这里的三元运算顺序是先写判断条件a>b再写条件成立返回的值为a,条件不成立返回的值为b;三元运算可以嵌套使用;

函数

一、定义函数:
1、# arguments函数:arguments相当于将出传入的参数全部包含
function f(a){ # 把:换成{},function相等于def
console.log(a);
console.log(arguments); # 把多余的值放到这里来,以数组的形式
console.log(arguments[0]); # 可以根据数组来取值
console.log(arguments[1]);
console.log(arguments[2]);
console.log(arguments.length) # 可以求取数组的长度
}
f(1,2,3,4,5)
输出结果:
'''
1
Arguments(5) [1, 2, 3, 4, 5, callee: ƒ, Symbol(Symbol.iterator): ƒ]
1
2
3
5
'''
二、匿名函数:
var sum =function (a,b){
return a + b
}
sum(1,2); # 这是匿名函数
res = sum(1,2); # 接收返回来的值
console.log(res) # 查看一下值

函数的全局变量和局部变量

局部变量:
在JavaScript函数内部声明的变量(使用var)是局部变量,所以只能在函数内部访问它(该变量的作用域是函数内部)。只要函数运行完毕,本地变量就会被删除。
全局变量:
在函数外生命对的变量是全局变量,网页上的所有脚本和函数都能访问它。
作用域:
首先在函数内部查找变量,找不到则到外层函数查找,逐步找到最外层。与Python作用域关系查找一样。
例子:
var city = '北京'; # 最后在全局变量查找
function f(){
var city = '上海'; # 然后再外部查找
function inner(){
var city = '深圳'; # 先在内部函数查找
console.log(city)
} inner()
}
f()

内置对象和方法

自定义对象

一、自定义对象
第一种方法:
var obj = {'username':'meng'}
// 增加
obj.age = 10;
obj['gender'] = 'male';
// 修改
obj.age = 11;
//删除
delete obj.age
console.log(obj)
console.log(obj.usernaem) # 取值
第二种方法:
var obj = new Object() # 相当于{} object,空对象
// 增加
obj.age = 10;
obj['gender'] = 'male';
// 修改
obj.age = 11;
//删除
delete obj.age
console.log(obj)

遍历对象

二、遍历对象:
var a = {'username':'meng','age':18}
for (var i in a){ # 循环遍历对象
console.log(i,a[i]) # 打印出k值和v值,a[i]相当于value值
}

Date对象(建议能用Python解决就用Python)

三、Date对象
var d = new Date();
//getDate() 获取日
//getDay () 获取星期
//getMonth () 获取月(0-11)
//getFullYear () 获取完整年份
//getYear () 获取年
//getHours () 获取小时
//getMinutes () 获取分钟
//getSeconds () 获取秒
//getMilliseconds () 获取毫秒
//getTime () 返回累计毫秒数(从1970/1/1午夜)
用法:
var d = new Date()
console.log(d.getDay()) # 打印出星期几

JSON对象

相当于loads反序列化:
var obj1 = '{"name":"meng","age":18}'; # 注意里面外面用单引号,里面用双引号
str_obj = JSON.parse(obj1); # JSON字符串转换成对象,反序列化
console.log(str_obj);
console.log(str_obj.name)
相当于dumps序列化:其他类型转化成字符串称为序列化
var obj1 = {"name":"meng","age":18};
console.log(JSON.stringify(obj1)) # 对象转换成JSON字符串
console.log(typeof JSON.stringify(obj1))

正则对象

第一种正则表达式方式:new RegExp()
# 必须是a开头的 匹配5-11位
var reg1 = new RegExp("^[a-zA-Z][a-zA-Z0-9]{5,11}"); # 不用自己写,去百度搜对应的需求
console.log(reg1.test('a455fdf')) # 符合a开头和在5-11位数,匹配成功 第二种正则表达式方式:/正则表达式/
var reg1 = /^[a-zA-Z][a-zA-Z0-9]{5,11}/ # 完全跟第一种一样
console.log(reg1.test('a455fdf')) 手机号匹配:
var reg1 = new RegExp("13[123569]{1}\\d{8}|15[1235689]\\d{8}|188\\d{8}"); # 去百度搜需求
// console.log(reg1.test('11d5545')) # 匹配失败
console.log(reg1.test('15112282880')) # 匹配正确 全局匹配:
var s1 = 'egondsb dsb dSb';
console.log(s1.match(/s/)); # 找到第一个小写s就停止
console.log(s1.match(/s/g)); # g:全局 找出所有的小写s,大写找不到
console.log(s1.match(/s/gi)) # i:忽略大小写 找出所有s

Math对象

Math对象的方法:
abs(x) 返回数的绝对值。
exp(x) 返回 e 的指数。
floor(x) 对数进行下舍入。
log(x) 返回数的自然对数(底为e)。
max(x,y) 返回 x 和 y 中的最高值。
min(x,y) 返回 x 和 y 中的最低值。
pow(x,y) 返回 x 的 y 次幂。
random() 返回 0 ~ 1 之间的随机数。
round(x) 把数四舍五入为最接近的整数。
sin(x) 返回数的正弦。
sqrt(x) 返回数的平方根。
tan(x) 返回角的正切。
代码:
console.log(Math.random())
console.log(Math.floor(2.5)) # 2 跟取整一样
console.log(Math.round(2.5)) # 3 四舍五入

day34 前端基础之JavaScript的更多相关文章

  1. 前端基础之JavaScript day51

    前端基础之JavaScript   JavaScript概述 JavaScript的历史 1992年Nombas开发出C-minus-minus(C--)的嵌入式脚本语言(最初绑定在CEnvi软件中) ...

  2. 进击的Python【第十四章】:Web前端基础之Javascript

    进击的Python[第十四章]:Web前端基础之Javascript 一.javascript是什么 JavaScript 是一种轻量级的编程语言. JavaScript 是可插入 HTML 页面的编 ...

  3. 前端第三篇---前端基础之JavaScript

    前端第三篇---前端基础之JavaScript 一.JavaScript概述 二.JavaScript的基础 三.词法分析 四.JavaScript的内置对象和方法 五.BOM对象 六.DOM对象 七 ...

  4. 03 前端基础之JavaScript

    目录 前端基础之JavaScript JavaScript JavaScript注释 变量与常量 基本数据类型 number类型 string类型 boolean类型 null与undefined类型 ...

  5. 前端基础之JavaScript(Day53)

    阅读目录 一.JavaScript基础 二.JavaScript对象 三.BOM对象 一.JavaScript基础 http://www.cnblogs.com/yuanchenqi/articles ...

  6. 前端基础之JavaScript

    什么是JavaScript? JavaScript,也称ECMAScript,是一种基于对象和事件驱动并具有相对安全性并广泛用于客户端网页开发的脚本语言,同时也是一种广泛用于客户端Web开发的脚本语言 ...

  7. 前端基础之JavaScript - day14

    写在前面 上课第14天,打卡: 唯心不易,坚持! 参考:http://www.cnblogs.com/yuanchenqi/articles/6893904.html 前言 一个完整的 JavaScr ...

  8. 前端基础(JavaScript)2

    3.2 Array对象 3.2.1 数组创建 创建数组的三种方式: 创建方式1: var arrname = [元素0,元素1,….]; // var arr=[1,2,3]; 创建方式2: var ...

  9. 前端基础(JavaScript)

    JavaScript概述 JavaScript的历史 1992年Nombas开发出C-minus-minus(C--)的嵌入式脚本语言(最初绑定在CEnvi软件中).后将其改名ScriptEase.( ...

随机推荐

  1. iptables 原理及应用

    转自:iptables 原理及应用 iptables是一个Linux下优秀的nat+防火墙工具,我使用该工具以较低配置的传统pc配置了一个灵活强劲的防火墙+nat系统,小有心得,看了网上也有很多这方面 ...

  2. SkyWalking部署及.Net Core简单使用

    SkyWalking官方网站非常详细,以下只是本人学习过程的整理 一.SkyWalking简介 1.概念 SkyWalking是分布式系统的应用程序性能监视工具,专为微服务.云原生架构而设计 SkyW ...

  3. 力扣 - 剑指 Offer 67. 把字符串转换成整数

    题目 剑指 Offer 67. 把字符串转换成整数 思路1 根据题意,要解决这题,首先要判断的条件有: 不包括首位空格 第一位必须为:+.-.数字三者其一,否则不合法 数字必须连续的,如果遇到非数字, ...

  4. PHP查看内存占用

    function test(){ echo memory_get_usage(), '<br>'; $start = memory_get_usage(); $a = []; for ($ ...

  5. k8s中部署springcloud

    安装和配置数据存储仓库MySQL 1.MySQL简介 2.MySQL特点 3.安装和配置MySQL 4.在MySQL数据库导入数据 5.对MySQL数据库进行授权 1.MySQL简介 MySQL 是一 ...

  6. 【Java】String和List类型转换

    String & List String ==>List //方法一 List<String> list = Arrays.asList(str.split(",& ...

  7. 数组 & 对象 & 函数

    数组 数组也是一个对象,不同的是对象用字符串作为属性名,而数组用数字作为索引,数组的索引从0开始 创建数组: //方式一:构造器,可以在创建数组时指定 Var arr = new Array(1,2, ...

  8. 登录、注销&用户和用户组管理

    登录.注销 # 立刻关机 shutdown -h now # 1分钟后,关机 shutdown -h 1 # 立刻重启 shutdown -r now # 2分钟后,重启 shutdown -r 2 ...

  9. Python 爬取妹子图(技术是无罪的)

    ... import requests from bs4 import BeautifulSoup import os import sys class mzitu(): def html(self, ...

  10. ndarray 数组的创建和变换

    ndarray数组的创建方法 1.从python中的列表,元组等类型创建ndarray数组 x = np.array(list/tuple) x = np.array(list/tuple,dtype ...