JS基础语法

由网景(Netscape)公司推出
是一门面向对象的,清亮的,弱类型解释型脚本语言
弱类型:没有数据的限制。
解释型:无需编译,只要是特定的单词,浏览器就可以翻译。

JS写在哪里

1. 写在某个标签当中

例如:

<button onclick="document.write('hello JS')">点击一下 </button>

2.写在Script标签当中

script 标签可以放在内容当中,标签通常写在<head></head>中或者body结束之前
自己写的话最好写在页面中

<script></script>

3.写在单独的文件当中,在通过script标签导入

JS中的输出语句

<!-- 通过浏览器自带的消息提示框输出 --><button onclick="alert('hello javaScript')">点击一下</button>
<!-- 通过控制台输出日志信息 --><button onclick="console.log('hello JavaScript')">再点击一下</button>
<!-- 将输出类容放到页面上 --><button onclick="document.write('hello JS')">点击一下 </button>

JS中的注释

1.单行注释

//单行注释
<!--多行注释-->/**/

JS的组成

ECMAScript 是一种标准

ECMAScript定义了JavaScript的基本语法。

ECMAScript核心语法

** 数据类型 **

原始类型

JS中的原始类型 说明
数值型number 整数,小数为数值型
字符串型string 单双引号的都是字符串类型
布尔型boolean true/false
空类型null 通过null赋值
未定义类型undefined 未声明或没有值

引用类型

对象,数组,函数等

定义类型

var name = "张三";var age;age=18;console.log("name:"+name+"age:"+age);

运算符

JS中的boolean可以用true/1,false/0来表示;

所以可以将true和false当作数来运算

  • 算术
+ - * / %
除了+号外 ,其余都可以做字符运算
  • 关系
> < >= <= == !=关系符号得到的结果是 true 或者 false
'==='比较的是两边的类型和内容是否相同,同为true才是true
'!=='比较值和数据类型
  • 逻辑

    && || |

  • 赋值和符合数值

    = += -= *= /= %=
    如a*=b+c相当于a=a(b+c)
    
  • 自增自减

++ --
符号在前,先+1或-1后使用 反之;
  • 条件

    表达式1?表达式2:表达式3

//java中的while(true)在这里可以写作
while(1){//表达式
}

条件语句

if语句

  1. 单分支语句

    if(判断条件){...
    }
    
  2. 双分支语句

    if(条件语句){...
    }else{...
    }
    
  3. 多分支语句

    if(条件语句){...
    }else if(条件语句){...
    }...
    else{...
    }
    
  4. 嵌套语句

    if(条件){if(条件语句){...
    }
    }
    

switch语句

switch(n)
{case 1:执行代码块 1break;case 2:执行代码块 2break;default:与 case 1 和 case 2 不同时执行的代码
}

注意:JS里的switch里的case后的数据类型可以是不同的,java中的必须是相同类型的case语句;

循环语句

for循环

  • 循环代码块一定的次数

    for (var i=0;i<cars.length;i++)
    { document.write(cars[i] + "<br>");
    }
    

for/in循环

  • 循环遍历对象的属性

    while (条件)
    {需要执行的代码
    }
    

while循环

  • 当指定的条件为true时循环指定的代码块

    do
    {需要执行的代码
    }
    while (条件);
    

do/wihle循环

  • 同while,指定true时执行指定代码块类容;

javaScript break和continue语句

break

跳出当前循环体,会执行接下来的代码

for (i=0;i<10;i++)
{if (i==3){break;}x=x + "The number is " + i + "<br>";
}

continue

它会中断当前循环体,直接结束本次循环,继续下一次迭代循环

while (i < 10){if (i == 3){i++;    //加入i++不会进入死循环continue;}x= x + "该数字为 " + i + "<br>";i++;
}

JS中的数组

js中的数组类似于java中的集合数组

他是一个可变的数组且可以存放不同类型

  • 定义数组的方式

    var 数组名 = new Array();
    var 数组名 = [];
    
  • 默认没有初始化的位置,用undefined填充

  • 最大下标决定了数组长度

  • 可以保存不同类型的数据

  • 遍历数组的两种方式

    1. for循环遍历

      for(var i=0;i<arr.length;i++){console.log(arr[i]);
      }
      
    2. 增强for循环

      for(var index in list){console.log(list[index])
      }
      
  • 初始化数组

    var list =[123,"asd",true,"qwe"];
    var list = new Array(123,"asd",true,"qwe"];
    

数组常用方法

以下方法在调用时都会影响数组本身

方法名 作用 返回值
sort() 将数组升序排序 排序后的数组
reverse() 将数组的元素倒序保存 倒叙后的数组
pop() 移除最后一个元素 被去除的元素
push(参数) 添加一个元素到数组的末尾 更新后的数组的长度
unshift() 添加元素到数组头 更新后的数组的长度
shift(参数) 移除数组头的元素 被移除的元素
fill(参数) 使用指定参数填充数组 填充后的数组
splice(index) 从指定位置分割元素 截取后的新元素
splice(index , length) 指定位置长度的截取数组 截取到的数组

以下方法不会影响原数组

方法名 作用 返回值
indexOf(元素) 得到某个元素第一次出现的索引 索引
lastindexOf(元素) 得到元素最后一次出现的索引 索引
concat(元素) 将指定元素添加到数组末尾 添加后的数组
join(字符) 拼接字符到数组中 拼接后的数组
slice(start,end) 截取start到end之间的数组 截取后的数组
map(方法名) 让数组执行指定方法 执行方法后的新数组

练习

1.分解质因子

<!DOCTYPE html>
<html><head><meta charset="utf-8" /><title></title></head><body><p id="id"></p><script>let n = Number(prompt('输入一个正整数'));var m = n;var arr = [];var flag = 0;for (var i = 2; i <= n; i++) {if (n % i == 0) {arr.push(i)n /= i;i--;flag++;}}let arrNum = arr.join('*');if (flag < 2) {console.log(m + "就是一个质数");} else {document.getElementById('id').innerHTML = m + "=" + arrNum;}</script></body></html>

2.java版分解质因子

import java.util.Scanner;public class Main {public static void main(String[] args) {System.out.println("输入所求正整数:");Scanner sc = new Scanner(System.in);Long n = sc.nextLong();long m=n;int flag = 0;String[] str = new String[50];for (long i = 2; i <= n; i++) {if (n % i == 0) {str[flag] = Long.toString(i);flag++;n = n / i;i--;}}if (flag < 2)System.out.println(m + "为质数");else {System.out.print(m + "=" + str[0]);for (int k = 1; k < flag; k++) {System.out.print("*" + str[k]);}System.out.println("\n"+m+"共有"+flag+"个质因数.");}sc.close();}
}

3.输入某一年的某一月,计算这个月有多少天

<!DOCTYPE html>
<html><head><meta charset="utf-8" /><title></title></head><body><p id="id"></p><script>var y = Number(prompt("请输入年份:"));var m = Number(prompt("请输入月份:"));var d;if (y % 4 == 0 || y % 100 == 0);switch (m) {case 1:d = 31;break;case 2:if (y % 4 == 0 && y % 100 != 0 || y % 400 == 0) {d = 28;} else {d = 29;}breakcase 3:d = 31;break;case 4:d = 30;break;case 5:d = 31;break;case 6:d = 30;break;case 7:d = 31;break;case 8:d = 31;break;case 9:d = 30;break;case 10:d = 31;break;case 11:d = 30;break;case 12:d = 31;break;default:console.log("没有这一天")}document.getElementById("id").innerHTML = y + "年的" + m + "月有" + d + "天";</script></body>
</html>

4.冒泡排序

<script>var flag = 0;var arr = new Array(12, 15, 65, 54, 33);for (var i = 0; i < arr.length; i++) {for (var j = 0; j < arr.length; j++) {if (arr[j - 1] > arr[j]) {flag = arr[j - 1];arr[j - 1] = arr[j];arr[j] = flag;}}}for (var i = 0; i < arr.length; i++) {console.log(arr[i]);}</script>

JavaScript基础知识梳理相关推荐

  1. 【JS】1037- 面试前必备的 JavaScript 基础知识梳理总结

    1. JavaScript简介 JavaScript 最开始是专门为浏览器设计的一门语言,但是现在也被用于很多其他的环境. 如今,JavaScript 已经成为了与 HTML/CSS 完全集成的,使用 ...

  2. 面试前必备的 JavaScript 基础知识梳理总结

    1. JavaScript简介 JavaScript 最开始是专门为浏览器设计的一门语言,但是现在也被用于很多其他的环境. 如今,JavaScript 已经成为了与 HTML/CSS 完全集成的,使用 ...

  3. Js基础知识梳理系列

    小序:总是感觉自己的技术一直在原地踏步,想学习一些新的技术,但学起来很吃力,而且总是没有什么实际的收获,似乎进入了所谓的"瓶颈期".问了一些前辈是否也遇到过同样的问题,他们给我的解 ...

  4. Python基础知识梳理(一)

    Python基础知识梳理: 转载于:https://blog.51cto.com/10412806/2095116

  5. C#基础知识梳理系列十:异常处理 System.Exception

    C#基础知识梳理系列十:异常处理 System.Exception 参考文章: (1)C#基础知识梳理系列十:异常处理 System.Exception (2)https://www.cnblogs. ...

  6. python语法基础知识总结-Python基础知识梳理 - 第01部分

    在开始Python基础知识梳理前, 先安装下环境. 以下过程是在Linux操作系统, root用户下进行的, 主要安装了2.7版本的python, 和pip, ipython, virtualenv等 ...

  7. [SQL] SQL 基础知识梳理(三) - 聚合和排序

    SQL 基础知识梳理(三) - 聚合和排序 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5926689.html 序 这是<SQL 基础知识梳理 ...

  8. python入门题目及答案_Python基础自测题答案和基础知识梳理

    Python基础自测题答案和基础知识梳理 1.关于Python中的lambda表达式的函数体自能是单独一条语句,所以答案选择C. 例如:>>>g = lambda x: 2*x+1 ...

  9. mysql 算子 谓词_[SQL] SQL 基础知识梳理(六)- 函数、谓词、CASE 表达式

    SQL 基础知识梳理(六)-  函数.谓词.CASE 表达式 目录 函数 谓词 CASE 表达式 一.函数 1.函数:输入某一值得到相应输出结果的功能,输入值称为"参数",输出值称 ...

最新文章

  1. 你管这破玩意儿叫负载均衡?
  2. JavaScript里面三个等号和两个等号的区别
  3. Anaconda+用conda创建python虚拟环境
  4. 一款不错的基于WEB技术的文件服务器
  5. 【正视CSS 06】构建我们自己的世界观!
  6. Linux中read接收用户输入
  7. 本周ASP.NET英文技术文章推荐[04/08 - 04/14](附赠自弹超级玛丽主题曲)
  8. PPT设计中的用图问题
  9. How to use fb.data.query to get friends info?
  10. 《深入理解 Spring Cloud 与微服务构建》第一章 微服务简介
  11. 8 -- 深入使用Spring -- 4...3 AOP的基本概念
  12. python+selenium自动创建随笔
  13. BMFont制作美术字体包教包会
  14. 【实用技巧】下载音乐到本地电脑
  15. 解决网页打开慢/正在解析主机问题
  16. 自动化测试与手工测试对比
  17. oracle remap_tablespace,oracle使用remap_tablespace修改用户数据所在的表空间
  18. 微软放弃的游戏被他们复活了:Windows经典「三维弹球」现实版,CAD建模、Arduino编程、数控机床打造,硬核致敬童年...
  19. 什么公司需要Linux运维,为什么企业会需要Linux运维?Linux入门!
  20. 老司机 iOS 周报 #7

热门文章

  1. BZOJ1455罗马游戏
  2. Mac显示程序坞无延迟方法
  3. 伐木工和森林的故事(一)
  4. 还在埋头干活?一个老码农给程序员的几个忠告
  5. Excel中的宏--VBA的简单例子
  6. js 平面判断点在面内
  7. 设计模式:工厂方法与抽象工厂模式
  8. Windows上Emwin的使用
  9. 小黄鸭坤坤(Python高还原绘图)
  10. Nacos默认用户名和密码