JavaScript基础知识梳理
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语句
单分支语句
if(判断条件){... }
双分支语句
if(条件语句){... }else{... }
多分支语句
if(条件语句){... }else if(条件语句){... }... else{... }
嵌套语句
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填充
最大下标决定了数组长度
可以保存不同类型的数据
遍历数组的两种方式
for循环遍历
for(var i=0;i<arr.length;i++){console.log(arr[i]); }
增强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基础知识梳理相关推荐
- 【JS】1037- 面试前必备的 JavaScript 基础知识梳理总结
1. JavaScript简介 JavaScript 最开始是专门为浏览器设计的一门语言,但是现在也被用于很多其他的环境. 如今,JavaScript 已经成为了与 HTML/CSS 完全集成的,使用 ...
- 面试前必备的 JavaScript 基础知识梳理总结
1. JavaScript简介 JavaScript 最开始是专门为浏览器设计的一门语言,但是现在也被用于很多其他的环境. 如今,JavaScript 已经成为了与 HTML/CSS 完全集成的,使用 ...
- Js基础知识梳理系列
小序:总是感觉自己的技术一直在原地踏步,想学习一些新的技术,但学起来很吃力,而且总是没有什么实际的收获,似乎进入了所谓的"瓶颈期".问了一些前辈是否也遇到过同样的问题,他们给我的解 ...
- Python基础知识梳理(一)
Python基础知识梳理: 转载于:https://blog.51cto.com/10412806/2095116
- C#基础知识梳理系列十:异常处理 System.Exception
C#基础知识梳理系列十:异常处理 System.Exception 参考文章: (1)C#基础知识梳理系列十:异常处理 System.Exception (2)https://www.cnblogs. ...
- python语法基础知识总结-Python基础知识梳理 - 第01部分
在开始Python基础知识梳理前, 先安装下环境. 以下过程是在Linux操作系统, root用户下进行的, 主要安装了2.7版本的python, 和pip, ipython, virtualenv等 ...
- [SQL] SQL 基础知识梳理(三) - 聚合和排序
SQL 基础知识梳理(三) - 聚合和排序 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5926689.html 序 这是<SQL 基础知识梳理 ...
- python入门题目及答案_Python基础自测题答案和基础知识梳理
Python基础自测题答案和基础知识梳理 1.关于Python中的lambda表达式的函数体自能是单独一条语句,所以答案选择C. 例如:>>>g = lambda x: 2*x+1 ...
- mysql 算子 谓词_[SQL] SQL 基础知识梳理(六)- 函数、谓词、CASE 表达式
SQL 基础知识梳理(六)- 函数.谓词.CASE 表达式 目录 函数 谓词 CASE 表达式 一.函数 1.函数:输入某一值得到相应输出结果的功能,输入值称为"参数",输出值称 ...
最新文章
- 你管这破玩意儿叫负载均衡?
- JavaScript里面三个等号和两个等号的区别
- Anaconda+用conda创建python虚拟环境
- 一款不错的基于WEB技术的文件服务器
- 【正视CSS 06】构建我们自己的世界观!
- Linux中read接收用户输入
- 本周ASP.NET英文技术文章推荐[04/08 - 04/14](附赠自弹超级玛丽主题曲)
- PPT设计中的用图问题
- How to use fb.data.query to get friends info?
- 《深入理解 Spring Cloud 与微服务构建》第一章 微服务简介
- 8 -- 深入使用Spring -- 4...3 AOP的基本概念
- python+selenium自动创建随笔
- BMFont制作美术字体包教包会
- 【实用技巧】下载音乐到本地电脑
- 解决网页打开慢/正在解析主机问题
- 自动化测试与手工测试对比
- oracle remap_tablespace,oracle使用remap_tablespace修改用户数据所在的表空间
- 微软放弃的游戏被他们复活了:Windows经典「三维弹球」现实版,CAD建模、Arduino编程、数控机床打造,硬核致敬童年...
- 什么公司需要Linux运维,为什么企业会需要Linux运维?Linux入门!
- 老司机 iOS 周报 #7