快速入门
<script>
//JavaScript代码(单行注释)
/*
*多行注释
*JavaScript严格区分大小写
*/
alert('Hello');
</script>
<script src="abc.js"></script>
tips:浏览器必备调试JavaScript代码须知
数值、文本、图形、音频、视频…
js不区分整数和小数
//为了保证代码的可读性,建议使用[]
var arr = [1,2,3,'Hello',null,true];
//如果取数组元素越界了不会报错,而是显示undefined
<script>
var person = {
name : "Matilda",
age : 20,
tags : ['java','web','js','...']
}
</script>
<script>
<!--
前提:需要IDEA支持ES6语法
预防JavaScriptdd 随意性产生的一些问题
必须写在JavaScript第一行
局部变量建议用let去定义
-->
'use strict';
// i = 1; 不加strict 可以正常使用,是个全局变量,会存在一些问题
//加了let定义之后变成局部变量,用strict检查更严谨
let i = 1;
</script>
<script>
// `` 这个是单引号,是tab键上面一个,一般叫piao(飘)
var str = `
你好
Hello
Bonjour
`
</script>
<script>
let name = 'Matilda';
let age = 20;
//用piao
let msg = `你好呀,${
name}`
//字符串长度
console.log(name.length);
//转换大小写
console.log(name.toUpperCase());
//获取下标
console.log(name.indexOf('t'));
//截取字符串
console.log(name.substring(1));//从下标 1 截取到末尾
console.log(name.substring(1,3));//从下标1 截取到下标 2,左闭右开区间
</script>
JavaScript中数组可以包含各种类型的数据
var arr = [1,2,3,4,5,'Matilda',null]
长度
arr.length
注意:假如给arr.length赋值,数组的大小会发生改变
多出来的空间为undifine,如果赋值过小,元素会丢失。
indexof
arr.indexof(2);
通过元素获得下标
slice () 截取数组中的一部分,
返回一个新的数组,类似于String中的substring
arr.slice(2);//截取下标2开始到末尾
arr.slice(1,5);//截取下标1到5之间的元素;左闭右开区间
push() / pop() 尾部
arr.push('a','b');//在数组末尾压入这两个元素
arr.pop('a');//将元素 b 从数组尾部弹出
unshift() / shift() 头部
arr.unshift('a','b');//在数组头部压入这两个元素
arr.shift('a');//将元素 b 从数组头部弹出
排序 sort()
arr.sort();//默认升序
元素反转 reverse()
arr.reverse();
数组拼接 concat()
arr.concat([1,2,3]);
注:只是拼接了一下,返回了一个新数组,原数组arr并没有改变。
连接符 join
打印拼接数组,使用特定的字符串连接
arr.join('-');
多维数组
arr = [[1,2],[3,4],[5,6]];
arr[1][1];//4
若干个键值对
注:JavaScript中所有的键都是字符串,值是任意类型。
var 对象名 = {
属性名:属性值,
属性名:属性值,
属性名:属性值
}
var person = {
name: 'Matilda',
age: 20,
sex: 'Male'
}
对象赋值
person.name = '输入自己想要的值';
直接改
使用一个不存在的属性,不会报错,显示undefined
person.boy;//undefined
动态删减对象属性
delete person.name
动态的添加属性
person.boy = 'boy'
判断属性值是否存在某对象中
'age' in person
//父类的值也能判断
'toString' in person
判断一个属性是否是这个对象自身拥有的hasOwnProperty()
person.hasOwnProperty('age')
if 判断
while 循环
for 循环
for(let i = 0; i < 100; i++){}
ES6中局部变量用let,ES5用var
遍历数组 forEach 循环
var arr = [1,23,4,5,6,7,8];
//第一种 :es5.1特性
arr.forEach(function(value) {
console.log(value);
})
//第二种:这里的num为数组元素的下标(不建议使用)
for (var num in arr) {
console.log(age[num]);
}
//第三种:这里的num为数组元素
for (var num of arr) {
console.log(num);
}
ES6新特性
<script>
let map = new Map([['Matilda',100],['Leon',90],['Mike',80]]);
let score = map.get('Matilda');
console.log(score);
//添加键值对
map.set('Lucy',60);
//删除
map.delete('Matilda');
</script>
<script>
let set = new Set([11,2,3,,4,6]);
set.add(5);
set.delete(5);
//判断是否存在某元素
console.log(set.has(5));
</script>
<script>
//遍历Map
for (let value of map) {
console.log(value);
}
//遍历Set
for (let value of set) {
console.log(value);
}
</script>
定义方式一
绝对值函数:
function abs (x) {
if (x >= 0) {
return x;
}
else {
return -x;
}
}
如果没有通过 return 结束函数,函数会返回undefined
定义方式二
匿名函数
//匿名函数
var abs = function (x) {
if (x >= 0) {
return x;
}
else {
return -x;
}
}
调用函数
abs