JavaScript(简称“JS”) 是一种具有函数优先的轻量级,解释型或即时编译型的编程语言。虽然它是作为开发Web页面的脚本语言而出名,但是它也被用到了很多非浏览器环境中,JavaScript 基于原型编程、多范式的动态脚本语言,并且支持面向对象、命令式和声明式(如函数式编程)风格。
JavaScript
1. 介绍
JavaScript是一门世界上最流行的脚本语言
2. 入门引入
2.1 引入方式
内部标签:
<script>
alert("hello world!")
//……
</script>
外部标签
<script src="js/qj.js"></script>
alert("你好,我是你第一个JavaScript程序!")
//……
2.2 基本语法
<!--JavaScript严格区分大小写-->
<script>
// 1. 定义变量 变量类型 变量名 = 变量值
var num = 1;
alert(num);
// 2. 条件控制
if (2 > 1) {
alert("真的!!");
} else if (3 === 3) {
alert("假的!!");
}
// 3. 浏览器调试常用命令
// console.log(变量); 打印变量到浏览器的控制台
</script>
2.3 数据类型
数值 , 文本 , 图形 , 音频 , 视频……
命名不可以以数字开头
-
number
类型 JavaScript不区分整数小数123 // 整数 123.123 // 小数 1.123e3 // 科学计数法 -99 // 复数 NaN // not a mumber Infinity // 表示一个无限大的数字
浮点数有精度问题,尽量避免使用浮点数计算
-
字符串
'abs' "abs"
①. 正常字符串使用 单引号 或者双引号包裹起来
②. 注意转义字符 \
③. 多行字符串编写 `` 该符号是tab上面的飘号
let string = ` 你好 我是刘艺 20岁! `;
④. 模板字符串
let name="刘艺"; let age=3; let msg = `hello,${ name}`; console.log(msg); // 注意:msg的内容必须用``(飘号)括起来
⑤. 大小写转换
student.toUpperCase(); student.toLowerCase();
⑥. 字符串截取
student.substring(2,4)
取头不取尾
-
布尔值
true flase
-
逻辑运算
&& || !
-
比较运算符
= == 等于(类型不一样,值一样,也会判断为true) === 绝对等于(类型一样,值一样,结果为true)
坚持不要使用“==”判断相等
NaN与所有值都不相等,包括自己
只能通过isNaN(变量)来判断
-
null和undefined
null:空
undefined:未定义
-
数组
注意:java数组中存放的必须是相同数据类型的值,而javascript中没有要求
<script> // 保证代码的可读性,一般使用第一种 var arr = [1, 2, 3, 4, 5, null, "hello world"]; new Array(1, 2, 3, 4, 5, null, "hello world"); </script>
①. 可以给 arr.length 赋值会改变数组的长度,赋值过小会丢失数据
②. 通过元素获得下标索引 arr.indexof(‘s’);
③. slice()截取数组的一部分,返回一个新数组类似于Java中的subString
④. push() pop() 尾部操作
pop:压入尾部一个元素 push:弹出尾部一个元素
⑤. unshift() shift() 头部操作
unshift: 压入头部一个元素 shift: 弹出头部一个元素
⑥. 排序 sort( );
["B","C","A"]; arr.sort(); ["A","B","C"];
⑦. 拼接数组 concat( );
["B","C","A"]; arr.concat([1,2,3]); ["B","C","A",1,2,3];
⑧. 连接符join,打印拼接数组,使用指定的字符串连接
["B","C","A"]; arr.join('-'); "B-CA"
-
对象
对象是大括号,数组是中括号……
每个属性之间使用逗号隔开,最后一个不需要加
若干个键值对
var person = { name:"刘艺", age: 20, tags: ['js','web','java','……'] } var 对象名 = { 属性名: 属性值 属性名: 属性值 属性名: 属性值 …… }
- 取对象的值
person.name; person.age; ……
- 对象赋值 使用一个不存在的对象属性,不会报错,undefined
person.name = "陈翔" person.age = "19"
- 动态删除属性
delete person.name true person
- 动态的添加
person.haha = "haha"
直接给新的属性添加值即可
- 判断属性值是否在对象中 XXX in XXX
person.hasOwnProperty('person') true
-
Map和Set
-
Map
var map = new Map([["Tom",100],["jerry",95],["admin",90]]) // get var name = map.get("Tom"); console.log(name); // set map.set("ChenXiang",199); console.log(map);
-
Set
var set =
-