Javascript初步
Javascript初步
Introduction
最近了解了一种新的漏洞——原型链污染。了解到原型链污染是一个关于前端js的相关漏洞,OK,那就先来学一下Javascript的基础嘛,后面学完原型链污染再写另一篇。其实Javascript包括另外两大前端语言HTML,CSS在当时开发学院文化节活动网站的时候也接触过(虽然主要负责后端的工作),并且Javascript在某种程度上和C语言很像,所以这一篇内容不会特别详尽。
Javascript数据类型
字符串
Javascript的字符串声明和Python差不多,可以使用单引号或者双引号,如:1
2
3
4var string1="Hello World!";
var string2="Hello Javascript!";
console.log(string1);
console.log(string2);
数字
Javascript只有一种数字类型,可以带或不带小数点,如:1
2
3
4var num1=1;
var num2=1.00;
console.log(num1);
console.log(num2);
布尔
布尔类型只能有两个值,true或者false,如:1
2
3
4var bool1=true;
var bool2=false;
console.log(bool1);
console.log(bool2);
数组
数组的声明
Javascript数组中可以存放任意类型的数据。Javascript声明数组的方法有很多,下面的方法都可以声明(本人更倾向于类似python的声明方法,因为简单哈哈哈),如:1
2
3
4
5var array1=new Array();
array1[0]=1;
var array2=[2];
console.log(array1[0]);
console.log(array2[0]);
数组元素的插入
Javascript数组的插入使用push函数:1
2
3var array1=[1,2,3];
array1.push(4);
console.log(array1)
或者直接给数组元素赋值:1
2
3var array1=[1,2,3];
array1[3]=4;
console.log(array1)
数组元素的删除
删除最后一项使用pop函数:1
2
3var array1=[1,2,3];
array1.pop();
console.log(array1)
或者修改数组长度:1
2
3var array1=[1,2,3];
array1.length=2;
console.log(array1)
删除任意位置使用splice函数,如下代码表示删除第一项索引为0,删除一项:1
2
3var array1=[1,2,3];
array1.splice(0,1);
console.log(array1)
对象
Javascript对象由键值对构成,属性由逗号隔开:1
2var object={"name":"等风","age":19};
console.log(object)
也可以这样声明:1
2
3
4var object={};
object.name="等风";
object.age=19;
console.log(object)
对象的寻址:1
2
3var object={"name":"等风","age":19};
console.log(object.name)
console.log(object)
或者1
2
3var object={"name":"等风","age":19};
console.log(object['name'])
console.log(object)
Undefined和Null
Undefined表示变量没有初始值(变量存在但无值)
值得注意的是,在javascript中undefined和null在”==”比较运算符下是一样的:1
2
3var a=undefined;
var b=null;
console.log(a==b)
Javascript调试
一般来说调试Javascript代码采用两种调试方法,console.log控制台调试还有断点调试(不建议使用alert,因为会中断)
Javascript原型链
在Javascript中,万物皆对象。
在Javascript中没有类的概念,但是可以通过原型链来达到类继承的目的。
举例:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15function info() {
this.name="等风";
this.age=19;
}
function qq() {
this.QQ=1440416491;
}
info.prototype=new qq();
myinfo=new info();
console.log(myinfo.QQ);
//144041491
可以看到上面的info并没有QQ这一成员,但却访问到了QQ,这说明info通过“父类”qq继承到了QQ;同理,qq也可以有自己的父类,这样可以一直“溯源”,直到prototype为null为止。在这里解释一下上面程序运行的结果吧,javascript调用成员先会在自己的对象里面找,如果找不到就去对象的原型里面找,一直这样找,找到就返回,找不到就算了。
Prospect
Javascript的学习暂时就告一段落了(够用就行),过几天再把原型链污染学习一下,然后再来更blog吧hhh
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!