运算符

1.算数运算符

运算符 描述
+
-
*
/
% 取余(保留整数)
++ 递加
- - 递减
**

var x=10;

var res1=x++; '先赋值后自增1' 10

var res2=++x; '先自增1后赋值' 12

2.赋值运算符

运算符 例子 等同于
= x = y x = y
+= x += y x = x + y
-= x -= y x = x - y
*= x *= y x = x * y
/= x /= y x = x / y
%= x %= y x = x % y

3、比较运算符

运算符 描述
== 等于
=== 等值等型
!= 不相等
!== 不等值或不等型
> 大于
< 小于
>= 大于或等于
<= 小于或等于
? 三元运算符

弱等于:自动转换类型

'5' == 5 '结果是true js会自动转换成相同数据类型比较值是否一样'

强等于:不转换类型

'5' === 5 '结果是false'

4、逻辑运算符

运算符 描述
&& 逻辑与
|| 逻辑或
! 逻辑非

5、类型运算符

运算符 描述
typeof 返回变量的类型
instanceof 返回 true,如果对象是对象类型的实例

流程控制

if语句

JS语言提供了俩种分支结构语句1.if语句 2.switch语句

if 语法结构

  1. <script>
  2. // 1.if的语法结构 if如果的意思
  3. if (条件表达式 返回的值是布尔值 ) {
  4. // 执行语句
  5. }
  6. 2.执行思路:如果if条件表达式为 则执行大括号里面的语句 如果if条件表达式为 则不
  7. 执行里面语句直接跳过,执行if下面语句。这里的语句可以理解为一个行为把就是做了什么事情,可以做很多很多行为
  8. </script>

if else (双分支语句)语法结构

  1. <script>
  2. // 1.语法结构 if 如果 else 否则
  3. if (条件表达式) {
  4. // 满足条件时,执行的语句
  5. } else {
  6. // 不满足条件时,执行的语句
  7. }
  8. // 2.执行思路 如果 if 条件表达式为真则执行语句1 否则语句2
  9. // if里面的语句1 和else里面的语句2 最终只能执行一个语句
  10. // 3.注意else后面不跟小括号
  11. </script>

if else if else(多分支语句)语法结构

  1. <script>
  2. // 1.多分支语句 就是用来利用多个条件来选择不同的z语句执行 得到的结果不同 实现多选一的过程
  3. // if else if 语法结构
  4. if (条件表达式1) {
  5. // 执行语句1
  6. } else if (条件表达式2) {
  7. // 执行语句2
  8. } else if (条件表达式3) {
  9. // 执行语句3
  10. } else {
  11. // 最后的语句
  12. }
  13. // 2.执行思路 如果条件表达式 1 满足条件 就执行 语句1 执行完毕后,退出整个if语句
  14. // 如果条件表达式1 不满足条件 就执行条件表达式2 满足的话 就执行语句2.然后退出整个if语句
  15. // 如果都不满足则执行最后else的语句
  16. // 注意点 里面的表达式条件可为多个 是多选一的过程
  17. </script>

分支流程控制switch语句

  1. switch也是多分支语句 它用于基于不同的条件来执行不同的代码,当要针对变量设置一系列特定值的选项
  2. 时,就可以使用switch
  3. <script>
  4. // 1.switch 语句 也是实现多选一的过程
  5. // 语法结构
  6. switch (表达式) {
  7. case value1:
  8. // 执行语句1
  9. break;
  10. case value2:
  11. // 执行语句2
  12. break;
  13. case value3:
  14. // 执行语句3
  15. break;
  16. default:
  17. // 执行最后的语句
  18. }
  19. // 2.执行思路 利用我们表达式的值 和case 后面的选项值相匹配 如果匹配上,就执行case里面的语句 如果都没有匹配上 就执行default里面的语句
  20. // 注意:最后的双逗号别忘记写了
  21. // 3.举个例子
  22. var num = 3
  23. switch (num) {
  24. case 1:
  25. break;
  26. case 2:
  27. break;
  28. case 3:
  29. break;
  30. default:
  31. // 如果都没有执行这里面的
  32. }
  33. // 4.switch注意点
  34. // 我们经常吧switch里面的表达式写出变量形式
  35. // num里面的值和case后面的值必须是全等关系 也包括数据类型也要一致 如num===3 严格判断的
  36. // break(结束的意思) 如果当前的case里面没有break 则不会退出 switch继续执行下一个case 直到遇见了break才会退出
  37. </script>

switch语句和if else if语句区别

  1. 一般情况下他们俩是可以互相替换的
  2. switchcase语句通常处理case比较确定值得情况下,而ifelse…语句更加灵活一些,常用于范围判断(大于、等与蒙个范围)
  3. switch语句进行条件判断后是直接跳到相对应执行语句上的效率高一些,而ifelse是一条一条进行判断的
  4. 当分支比较少时,ifelse语句的执行效率比switch语句高
  5. 当分支比较多时,switch语句的执行效率比较高,而且结果更清晰

for循环

  1. for(初始化变量; 条件表达式; 操作表达式 ){
  2. //循环体
  3. }
  4. //比如:输出10句“我想吃泡面”
  5. // 基本写法
  6. for(var i = 1; i <= 10; i++){
  7. console.log('我想吃泡面~');
  8. }
  9. // 用户输入次数
  10. var num = prompt('请输入次数:');
  11. for ( var i = 1 ; i <= num; i++) {
  12. console.log('我想吃泡面~');
  13. }

双重for循环

  1. for (外循环的初始; 外循环的条件; 外循环的操作表达式) {
  2. for (内循环的初始; 内循环的条件; 内循环的操作表达式) {
  3. 需执行的代码;
  4. }
  5. }
  6. //打印五行五列星星
  7. var star = '';
  8. for (var j = 1; j <= 3; j++) {
  9. for (var i = 1; i <= 3; i++) {
  10. star += '☆'
  11. }
  12. // 每次满 3个星星 就 加一次换行
  13. star += '\n'
  14. }
  15. console.log(star);
  16. //核心逻辑:
  17. //1.内层循环负责一行打印五个星星
  18. //2.外层循环负责打印五行

for 循环小结

  1. 1.for 循环可以重复执行某些相同代码
  2. 2.for 循环可以重复执行些许不同的代码,因为我们有计数器
  3. 3.for 循环可以重复执行某些操作,比如算术运算符加法操作
  4. 4.随着需求增加,双重for循环可以做更多、更好看的效果
  5. 5.双重 for 循环,外层循环一次,内层 for 循环全部执行
  6. 6.for 循环是循环条件和数字直接相关的循环

while循环

  1. while (条件表达式) {
  2. // 循环体代码
  3. }
  4. //使用while循环,完成从盒子里取球的动作,每次取一个,共6个球。
  5. var i=1 ;
  6. while(i<=6){
  7. console.log('这是去除的第'+i+'球');
  8. i++;
  9. }

do...while

  1. do {
  2. // 循环体代码 - 条件表达式为 true 时重复执行循环体代码
  3. } while(条件表达式);
  4. //使用do…while语句,输出1-6这6个数字。
  5. var i=1 ;
  6. do{
  7. console.log('这是去除的第'+i+'球');
  8. i++;
  9. }while(i<=6)

三元表达式

  1. python中的三元运算
  2. res = 11 if 1 > 2 else 22
  3. '''if后面的条件成立则使用if前面的值 不成立则使用else后面的值'''
  4. js中的三元运算
  5. res = 1 > 2 ? 11 : 22
  6. '''问号前面的条件成立则使用冒号左边的值 否则使用冒号右边的值'''
  7. # 三元运算一般情况下都不推荐嵌套使用!

函数

  1. function 函数名 () {
  2. 函数体..
  3. }

1.无参函数

  1. function f1(){console.log(111)}
  2. f1()

2.有参函数

  1. function f2(a, b){console.log(a,b)}
  2. f2() # 可以调用 相当于传了两个undefined
  3. f2(1) # 可以调用
  4. f2(1,2) # 可以调用
  5. f2(1,2,3,4,5) # 可以调用
  6. '''js中的函数提供了有个内置关键字arguments:接收所有参数'''
  7. function f2(){
  8. console.log(arguments)
  9. if (arguments.length === 0){
  10. console.log('什么参数都没传')
  11. }else if(arguments.length === 1){
  12. console.log('传了一个参数')
  13. }else{
  14. console.log('传了多个参数')
  15. }
  16. }

3.返回值参数

  1. function f3(){return 111}
  2. f3()
  3. return不支持返回多个数据

4.匿名函数

  1. 使用function关键字声明一个函数,但未给函数命名,所以叫匿名函数
  2. function (a, b) {
  3. console.log(a + b);
  4. }

函数表达式

  1. 使用function关键字声明一个函数,但未给函数命名,最后将匿名函数赋予一个变量,叫函数表达式。
  2. 函数也是一种数据类型, 属于Object对象类型中的一种
  3. var fun = function(a, b) { // 匿名函数
  4. console.log(a + b);
  5. };
  6. fun(12, 13);

5.箭头函数

  1. 箭头函数是ES6新增的语法,提供了一种更加简洁的函数书写方式,类似于匿名函数,并且简化了函数定义。

完整写法

  1. 完整写法类似于匿名函数,省略了function关键字。
  2. var s = (a,b) => {
  3. console.log(a, b); // 1 2
  4. return a + b;
  5. }
  6. s(1,2);
  7. // 相当于
  8. var s = function(a,b) {
  9. console.log(a, b); // 1 2
  10. return a + b;
  11. }
  12. s(1,2);

省略小括号

  1. 当参数只有1个时,可以省略小括号,当没有参数或者两个以上的参时不能省略小括号。
  2. var s = a => {
  3. console.log(a); // 1
  4. return a + a;
  5. }
  6. s(1);
  7. // 相当于
  8. var s = function(a) {
  9. console.log(a); // 1
  10. return a + a;
  11. }
  12. s(1);

省略大括号

  1. 当函数体只有一行语句时,可以省略{},并且会自动return这条语句的返回值。
  2. var cmp = (a, b) => a - b;
  3. // 相当于
  4. var cmp = function(a, b) { return a - b; };

省略小括号与大括号

  1. 当满足上述两个条件时,小括号与大括号可以全部省略。
  2. var s = a => a * 2;
  3. console.log(s(1)); // 2
  4. // 相当于
  5. var s = function(a) { return a * 2; }
  6. console.log(s(1)); // 2

自定义对象

方式1:定义了person对象(有参)

  1. function Person(name,age){//this代表person对象
  2. //追加属性
  3. this.name = name;
  4. this.age = age;
  5. //追加方法
  6. this.say = function(){
  7. alert("调用了say方法");
  8. }
  9. }
  10. //创建对象
  11. var p = new Person( "eric",20);

方式2:定义了person对象(无参)

  1. function Person(){
  2. }
  3. //创建对象
  4. var p =new Person();
  5. //追加属性
  6. p.name ="张三";
  7. p.age = 20;
  8. //追加方法
  9. p.say = function(){
  10. alert("调用了张三的say功能");
  11. }

方式3:创建Object对象:在js中object对象代表了所有对象,是一个模板对象

  1. var p = new Object();
  2. //追加属性
  3. p.name ="李四";
  4. p.age=20;
  5. //追加方法
  6. p.say = function(){
  7. alert("调用了李四的say功能");
  8. }

json方式

  1. var p = {
  2. //追加属性
  3. "name" :"王五",
  4. "age": 25,
  5. //追加方法
  6. "say" :function(){
  7. alert("调用了王五的say方法");
  8. }
  9. };

内置对象

Date对象

  1. var date1 = new Date()
  2. date1.toLocaleString() '2022/4/28 下午4:18:13'
  3. date1.toLocaleDateString() '2022/4/28'
  4. date1.toLocaleTimeString() '下午4:18:13'
  5. //getDate() 获取日
  6. //getDay () 获取星期
  7. //getMonth () 获取月(0-11)
  8. //getFullYear () 获取完整年份
  9. //getYear () 获取年
  10. //getHours () 获取小时
  11. //getMinutes () 获取分钟
  12. //getSeconds () 获取秒
  13. //getMilliseconds () 获取毫秒
  14. //getTime () 返回累计毫秒数(从1970/1/1午夜)

JSON对象

JSON.parse()

  1. JSON.parse()方法
  2. 作用:用于将一个 JSON 字符串转换为JavaScript 对象。
  3. 要求:字符串满足JSON字符串,否则就会转换失败。
  4. var text = '{ "sites" : [' +
  5. '{ "name":"Runoob" , "url":"www.runoob.com" },' +
  6. '{ "name":"Google" , "url":"www.google.com" },' +
  7. '{ "name":"Taobao" , "url":"www.taobao.com" } ]}';
  8. obj = JSON.parse(text);

JSON.stringify()

  1. JSON.stringify()方法
  2. 作用:将 JavaScript 值转换为 JSON 字符串。
  3. var test = {"nihao":"123"};
  4. JSON.stringify(test);

正则对象

  1. # 创建正则表达式的两种方式
  2. var reg1 = new RegExp("^[a-zA-Z][a-zA-Z0-9]{5,11}");
  3. var reg2 = /^[a-zA-Z][a-zA-Z0-9]{5,9}$/; # 推荐使用(简化)
  4. reg2.test('abc123') true
  5. '''括号内什么都不写 就相当于写了undefined'''
  6. reg2.test() true
  7. 全局匹配
  8. 在正则表达式的最后添加一个字母g
  9. var reg2 = /^[a-zA-Z][a-zA-Z0-9]{5,9}$/g;
修饰符 含义
g 表示全文搜索匹配,不添加,搜索到第一个匹配停止
i 表示忽略大小写进行匹配,默认大小写敏感
m 表示进行多行搜索匹配

常用正则表达式

  1. 验证字母:/^[a-zA-Z]+$/
  2. 验证长度为3的字符:/^.{3}$/
  3. 验证由26个英文字母组成的字符串:/^[A-Za-z]+$/
  4. 验证日期YYYY-MM-DD:/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/
  5. 验证邮编:/^\d{6}$/
  6. 验证日期格式YYYY-MM-DD hh:mm:ss:/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/
  7. 验证整数:/^[-+]?\d*$/
  8. 验证小数:/^[-\+]?\d+(\.\d+)?$/
  9. 验证中文:/^[\u0391-\uFFE5]+$/
  10. 验证邮箱:/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/
  11. 验证手机号:/^1[3456789]\d{9}$/
  12. 验证身份证:/^\d{6}(18|19|20)?\d{2}(0[1-9]|1[12])(0[1-9]|[12]\d|3[01])\d{3}(\d|X)$/

BOM操作

BOM对象

  1. window 对象,是 JS 的最顶层对象,其他的 BOM 对象都是 window 对象的属性:
  2. document 对象,文档对象;
  3. location 对象,浏览器当前URL信息;
  4. navigator 对象,浏览器本身信息;
  5. screen 对象,客户端屏幕信息;
  6. history 对象,浏览器访问历史信息;

window对象常用的方法

  1. 弹框类的方法。前面省略window
  2. alert('提示信息')
  3. confirm("确认信息")
  4. prompt("弹出输入框")
  5. open("url地址",“打开的方式(可以是-self或-black)”,“新窗口的大小”)注:如果url为空,则默认打开一个空白页面,如果打开方式为空,则默认为新窗口方式打开页面。返回值为:返回新打开窗口的window对象
  6. window.open('https://www.baidu.com','','width=400,height=400')
  7. close() 关闭当前的网页。 注:存在兼容性问题 FF:禁止设置关闭浏览器的代码
  8. Chrome:默认直接关闭
  9. IE:询问用户
  10. window.moveTo() - 移动当前窗口
  11. window.resizeTo() - 调整当前窗口的尺寸
  12. 定时器,清除定时器。
  13. setTimeout(函数,时间) 只执行一次
  14. setInterval(函数,时间) 无限执行
  15. clearTimeout/clearInterval(定时器名称) 清除定时器

location对象

  1. window.location对象:用于获得当前页面的地址 (URL),并把浏览器重定向到新的页面。在编写时可不使用 window 这个前缀。
  2. window.location.href 获取页面的url地址
  3. window.location.href = url # 跳转到指定页面
  4. window.location.reload() # 刷新页面
  5. hash 返回#号后面的字符串,不包含散列,则返回空字符串。
  6. host 返回服务器名称和端口号
  7. pathname 返回目录和文件名。 /project/test.html
  8. search 返回?号后面的所有值。
  9. port 返回URL中的指定的端口号,如URL中不包含端口号返回空字符串
  10. portocol 返回页面使用的协议。 http:或https:

navigator对象

  1. window.navigator 对象包含有关访问者浏览器的信息。在编写时可不使用 window 这个前缀。
  2. navigator.platform:操作系统类型;
  3. navigator.userAgent:浏览器设定的User-Agent字符串。
  4. navigator.appName:浏览器名称;
  5. navigator.appVersion:浏览器版本;
  6. navigator.language:浏览器设置的语言;
  7. userAgent是最常用的属性,用来完成浏览器判断。

screen对象

  1. window.screen 对象包含有关用户屏幕的信息。
  2. screen.availWidth 属性返回访问者屏幕的宽度,以像素计,减去界面特性,比如窗口任务栏。
  3. screen.availHeight 属性返回访问者屏幕的高度,以像素计,减去界面特性,比如窗口任务栏。
  4. document.write(screen.availHeight+screen.availWidth);//获取屏幕的宽度和高度之和

history对象

  1. window.history 对象包含浏览器的历史。为了保护用户隐私,对 JavaScript 访问该对象的方法做出了限制。
  2. history.back() - 加载历史列表中的前一个 URL。返回上一页。
  3. history.forward() - 加载历史列表中的下一个 URL。返回下一页。
  4. history.go(“参数”) -1表示上一页,1表示下一页。
  5. window.history.forward():返回下一页
  6. window.history.back():返回上一页
  7. window.history.go(-1/1):返回上一页或下一页、
  8. window.history.go("www.baidu.com");

DOM操作

  1. Document Object Model是指文档对象模型,通过它可以操作HTML文档的所有元素
  2. 但是HTML页面上有很多相同的标签 所以我们在操作HTML标签之前还要先学会如何查找标签(js查找标签)
  3. '''直接查找'''
  4. # 通过标签名查找标签
  5. document.getElementsByTagName('div') # 数组套标签对象
  6. # 通过class值查找标签
  7. document.getElementsByClassName('c1') # 数组套标签对象
  8. # 通过id值查找标签
  9. document.getElementById('d1') # 标签对象本身
  10. '''间接查找'''
  11. parentElement 父节点标签元素
  12. children 所有子标签
  13. firstElementChild 第一个子标签元素
  14. lastElementChild 最后一个子标签元素
  15. nextElementSibling 下一个兄弟标签元素
  16. previousElementSibling 上一个兄弟标签元素
  17. # 方法得出的标签对象还可以继续点击上述方法

JS运算符,流程控制,函数,内置对象,BOM与DOM的更多相关文章

  1. JS基础-语法+流程控制语句+函数+内置对象【数组】

    JS语法: Javascript基本数据类型:undefined/null/Boolean/number/string 复杂数据类型:object typeof用来检测变量的数据类型 typeof的使 ...

  2. awk(流程控制、内置变量、内置函数、数组)

    摘自:http://bbs.51cto.com/thread-883948-1-1.html awk(流程控制.内置变量.内置函数.数组) ... 参考其他的资料,给大家看看.一.awk流程控制语句 ...

  3. JS基础--函数与BOM、DOM操作、JS中的事件以及内置对象

       前   言 絮叨絮叨 这里是JS基础知识集中讲解的第三篇,也是最后一篇,三篇JS的基础,大多是知识的罗列,并没有涉及更难得东西,干货满满!看完这一篇后,相信许多正在像我一样正处于初级阶段的同学, ...

  4. js 内置函数 内置对象

    1.内置函数 Object Array Boolean Number String Function Date RegExp Error 2.内置对象 Date JSON

  5. JS中一些常用的内置对象

    在JS中,经常会遇到明明知道一个对象有某个属性或方法,可是又不知道怎么写的情况.下面,我就罗列了一些JS中常用的内置对象的属性和方法. Math对象: Math对象的作用是执行常见的算术任务. 首先M ...

  6. 从零开始的JS生活(三)——内置对象

    咱们继续进行我们的正经的JS介绍.今天所要跟大家讲述的是JS中十分常用.十分常用.十分常用的内置对象. 一.世界上最熟悉的陌生就是,当你看着数组.而我看着你... - 数组对象 1.数组的概念 在内存 ...

  7. Js基础知识7-JavaScript所有内置对象属性和方法汇总

    对象什么的,程序员可是有很多呢... JS三大对象 对象,是任何一个开发者都无法绕开和逃避的话题,她似乎有些深不可测,但如此伟大和巧妙的存在,一定值得你去摸索.发现.征服. 我们都知道,JavaScr ...

  8. 一张图理清js原型链(通过内置对象的引用关系)

    很多同学估计写了几年js也没有搞清内置对象之间的原型链关系,鄙人抽空手绘了一张简图,以作参考: 简单说明一下,上图中annonymous()函数相当于是所有函数的根(它本身也是函数),他上面提供了一些 ...

  9. js中的事件,内置对象,正则表达式

    [JS中的事件分类] 1.鼠标事件: click/dbclick/mouseover/mouseout/mousemove/mousedown/mouseup 2.键盘事件: keydown: 键盘按 ...

  10. js常用内置对象及方法

    在js中万物皆对象:字符串,数组,数值,函数...... 内置对象都有自己的属性和方法,访问方法如下: 对象名.属性名称: 对象名.方法名称 1.Array数组对象 unshift( )    数组开 ...

随机推荐

  1. 如何从https://developer.mozilla.org上查询对象的属性、方法、事件使用说明和示例

    在https://developer.mozilla.org搜索要在前面加上指令 搜索之后点进去 进入之后就是这样的 在页面左边你可以选择自己要查询的对象 里面就是会有属性.方法.事件使用说明和示例.

  2. isNotEmpty 与 isNotBlank 的区别

    isNotEmpty(str)等价于 str != null && str.length > 0 isNotBlank(str) 等价于 str != null &&am ...

  3. Azure DevOps 中 Dapr项目自动部署流程实践

    注:本文中主要讨论 .NET6.0项目在 k8s 中运行的 Dapr 的持续集成流程, 但实际上不是Dapr的项目部署到K8s也是相同流程,只是k8s的yaml配置文件有所不同 流程选择 基于 Dap ...

  4. HTML5 Performance

    简介 performance是html5的新特性之一,通过它,页面的开发者们可以非常精确的统计到自己页面的表现情况,从而有针对性的进行优化,提升用户体验. 下面是小姐姐对performance相关AP ...

  5. 前端网络安全——前端XSS

    XSS攻击:Cross Site Scripting(跨站脚本攻击) XSS攻击原理:程序+数据=结果,如果数据中包含了一部分程序,那么结果就会执行不属于站点的程序. XSS攻击能干什么?能注入Scr ...

  6. python-正整数的因子展开式

    [题目描述]编写程序,输出一个给定正整数x(x>1)的质因子展开式. [输入格式]请在一行中输入整数x的值. [输出格式]对每一组输入的x,按以下格式输出x的质因子展开式(假如x的质因子分别为a ...

  7. java中到底什么是继承?

    1.何为继承?What is Inheritance? 在上图中,对于车来讲,汽车就是子类.对于汽车来讲,奔驰就是子类.车是汽车的基类,超类,或说父类.到底什么是继承?马克-to-win,子类把父类的 ...

  8. 厉害!我带的实习生仅用四步就整合好SpringSecurity+JWT实现登录认证!

    小二是新来的实习生,作为技术 leader,我还是很负责任的,有什么锅都想甩给他,啊,不,一不小心怎么把心里话全说出来了呢?重来! 小二是新来的实习生,作为技术 leader,我还是很负责任的,有什么 ...

  9. Spring基于注解自动装配

    前面我们介绍Spring IoC装载的时候,使用XML配置这种方法来装配Bean,这种方法可以很直观的看到每个Bean的依赖,但缺点也很明显:写起来非常繁琐,每增加一个组件,就必须把新的Bean配置到 ...

  10. Codeforces Round #706 (Div. 2)B. Max and Mex __ 思维, 模拟

    传送门 https://codeforces.com/contest/1496/problem/B 题目 Example input 5 4 1 0 1 3 4 3 1 0 1 4 3 0 0 1 4 ...