写在前面:
前两天微信发布了应用号瞬间刷爆了朋友圈,按照腾讯的野心这可是要整合移动端市场啊!虽然很多大牛表示不看好,但是,技术嗅觉却一定会让他们了解学习这东西,虽然可能仅仅为了不掉队。另外前端的这些知识也会被用在我们平时的app开发中,大厂们都已经走在了前头。所以前端的技术知识我也必须自行普及了。
初识javaScript
javaScript是由Brendan Eich在两周内写出来的一个可以在静态HTML页面上添加一些动态效果的语言。ECMAScript是国际标准。
1.javaScript可以放在web的任何地方,不过我们通常把他放在<head></head>
标签内
2.也可以生成.js
文件,在html中通过<script src="...js"><script/>
标签添加。
javaScript基本语法(笔记)
- 由于js的结束语句标识符为
;
但是就是并不强制要求咱们必须添加,但不添加可能会出现某些歧义(如return
),所以一般写语句带上;
。 - js不注声明数据类型,而是通过后面的赋值表示其类型。通常通过
var
来声明局部变量。如果没有var
则表示为全局变量 - 数据类型:
- 数值Number:
js中不分浮点数和整数,所有java中的数值基本数值类型直接可用Number表示
1//整数
2.31//浮点数
123.456e3//科学计数法
NAN// NaN表示Not a Number,当无法计算结果时用NaN表示
-23//负数```
2. 字符串
js中字符串可以直接用单引号''或者双引号""括起。
'小敏'
"小敏"
"I'm a word!"//'此处表示一个字符
'I'm "ok"!'//同过转义字符\
即可将''
与""
同时在字符串中表示
多行字符串直接换行即可如
'
hello
my student
'
字符串可通过length返回长度
字符串是不可变的,但是可以通过方法改变其表现形式
toUpperCase()//变成大写字母
toLowerCase()//变为小写字母
indexOf()//索引
substring()//截取字符串,可指定开始位置和结束位置,不指定则为全部```
- 数组
var arr = [1,2.13,true,null,'hello']//数组元素可以是任何类型
数组可以通过length返回数组长度(但如给arr.length赋予一新值,则会改变数组数据)。
数组可以通过索引直接付新值(arr[1] = 2,但如果索引大于数组长度会引起数组长度变化)。
数组可以通过indexOf()方法进行查找数组元素位置
slice()可以截取数组中的部分或全部元素并且返回一个新数组
push()和pop()在数组末尾添加或删除数据
unshift()和shift()在数组起始处添加或删除数据
sort()给数组排序
reverse()表示翻转数组
splice()
修改数组的方法arr.splice(2,3,'JAVA','C#')表示在第二位起删除3个数据后添加两个数据
join()给数组添加链接符```
4. 对象
js中的对象是一种无序的集合类型,通过键值对表示其key和value,键值对通过:号连接,不同的键值对则通过,分隔.
可以通过变量名称.key直接访问value值,如果key包含特殊字符则需变量名['XXX']访问。eg(tom['old_Name'])
如果访问一个不存在的的键值对,不会报错只会返回undefined
如果添加,我们可以直接利用变量名添加(a.name = 'Tom')
如果删除,我们可以直接利用delete删除
如果查询是否存在,利用in('age' in a)返回布尔值,但注意in查询的不一定在该对象内,也可能是继承来的。
如果只想查询该对象含有的属性,可以使用hasOwnPorperty();```
- 循环
包括while(){},for(;;){},do{}while();三种循环。用法简单。
for.....in
var a = ['1','2',3,true];
for(var b in a){
alert(b);//结果为0,1,2,3,证明输出的是它的下标
}
for(var c of a){
alert(c);//结果为1,2,3,true;证明结果为其值
}
- Map和set
Map是利用键值对的形式进行存储的
var map = new Map(['Meachel',20],['Tom',21]);//有参声明
var map = new Map();//无参声明
map.set('Tom',21);//添加,修改
map.has('Tom');//查询
map.get('Tom');//获取
map.delete('Tom'); //删除
Map通过key添加value,如果相同key,后面的value会覆盖前面的value。
Set
var set = new Set([1,2,3,4]);//有参声明
set.add(5);//添加
set.delete(3);//删除
Set没有key,添加相同元素会被覆盖。数学中这也是集合的三大要义之一。
- Iterable
通过forEach(function())(...)是最高效的方法。
Array的function()De参数为element,index,array
var a = ['A', 'B', 'C'];
a.forEach(function (element, index, array) {
// element: 指向当前元素的值
// index: 指向当前索引
// array: 指向Array对象本身
alert(element);
});
Set的function()的参数为element,sameElement,set,并且第一第二个都指向元素;
var s = new Set(['A', 'B', 'C']);
s.forEach(function (element, sameElement, set) {
alert(element);
});
Map的function()的参数为value,key,map
var m = new Map([[1, 'x'], [2, 'y'], [3, 'z']]);
m.forEach(function (value, key, map) {
alert(value);
});```
#####小结:
这些个学习笔记我都是在[廖雪峰的个人网站](http://www.liaoxuefeng.com/)上的javaScript教程学习整理的,仅作学习用途。希望可以直接访问廖老师的个人网站学习,打赏。
**如果您发现本文有所错漏,麻烦留言交流共同进步**
网友评论