User-Profile-Image
hankin
  • 5
请到[后台->外观->菜单]中设置菜单。
  • 分类
    • 靶机渗透
    • 计算机小技巧
    • 未分类
    • 数据结构
    • 内网渗透
    • 代码审计
    • XSS
    • WEB安全漏洞学习
    • Web
    • python
    • PHP
    • NodeJS
    • MYSQL
    • Misc
    • JavaScript
    • Docker
    • CTF相关知识点
    • CTFWP
    • Crypto
    • Cobalt Strike
  • 页面
  • 友链
    • 三哥的博客
    • Root师傅的博客
    • EDS师傅的博客
    • 天正哥的博客
    • 天尘翼师傅的博客
    • 熵增师傅的github
    • 信仰的博客
    • Jadore的博客
Help?

Please contact us on our email for need any support

Support
    首页   ›   NodeJS   ›   正文
NodeJS

JavaScript复习

2020-05-14 11:14:11
42  0 0

Contents

    • 0.1 六大数据类型
    • 0.2 IF条件:
    • 0.3 循环
    • 0.4 数组
  • 1 对象
    • 1.1 函数声明
    • 1.2 面向对象

六大数据类型

字符串、对象(数组,object,function函数)、null、undefined、数值、布尔

null和undefined的区别

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div id="div">purplet</div>
</body>
<script>
    var a;//undefined
    var b = document.getElementById('xxxx');
    console.log(b);
</script>
</html>

undefined出现:
1.变量声明但没有赋值
2.获取对象中不存在的属性
3.函数有形参没有传实参,形参的值是undefined
4.函数内部没有return或return后没有任何东西时调用的值是undefined

null出现:
对象不存在

null的数据类型是object,但null并不是object类型

IF条件:

    if(1){

    }else if(){

    }else{
        
    }

循环

    for(1;1;1;){

    }
    while(1){

    }
    do{

    }while(1);

数组

var arr = [1,2];
var arr = new Array();//使用内置构造函数
var arr = ['a'=>1,'b'=>2];//JS中没有这种形式,PHP里称为关联数组

for循环打印数组内容

for (var i=1;i<=arr.length;i++){
    console.log(arr[i])
}
for (i in arr){
    console.log(arr[i]);
}
function f(value,index,array) {
        console.log("a[" + index + "] = " + value);
        console.log(array);
    }
var a = ['a', 'b', 'c'];
a.forEach(f); 

第三种利用内置函数forEach,进行回调函数打印输出

对象

var obj1 = {name:'purplet',age:20,fun:function(){
        alert(222);
}};
console.log(obj1.name);
console.log(obj1.fun);//只打印这个函数
console.log(obj1.fun());//运行函数内代码,弹窗后返回undefined(函数没有返回值)
//其中name,age,fun都是这个对象的属性,

函数声明

f1();//报错,表达式的必须先声明才可引用
f2();//正常执行
//表达式声明
var f1 = function{

}
//直接量
var f2(){

}
//内置构造函数(基本不用)
var f3 = new Function();

再来一个重要知识点

    var a=1;//全局变量
    function f1(f2){
        var a=2;//局部变量
        f2();
    }
    //在JS中函数自身的作用域在声明的地方,不在调用的地方
    function f2(){
        console.log(a);
    }
    f1(f2);

输出结果是1,请大家仔细理解。

闭包

    var a = 2;
function f1(f2){
var a = 1;
function f2(){
console.log(++a);
}
//由于f1的运行结果是返回f2
//又由于函数作用域链和函数自身作用域的问题
//导致f1运行结束后不能销毁变量
//因此形成了闭包
return f2;
}
var f = f1();
f();
f();
f();

输出2 3 4

面向对象

在JS中父级对象称为原型,Object是所有对象的的父级对象,理论上Object是没有父级对象的,然而Object的父级对象的值是Null(可以理解为无中生有)

原型链:每一个对象都有父级对象,而父级对象就称为原型。

如果在低级对象找一个属性找不到时会向父级对象中寻找,依次向上

    var s = '1';
    var o = [];
    var p = {};
    function f(){

    }
    console.log(p.__proto__);//object
    console.log(o.__proto__.__proto__);//object

__proto__是寻找该对象的父级对象

评论 (0)

点击这里取消回复。

欢迎您 游客  

近期文章
  • SUCTF 2019 Guess_game
  • Python pickle反序列化
  • [安洵杯 2019]easy_serialize_php
  • Session反序列化
  • 原生类序列化
近期评论
    文章归档
    • 2021年1月
    • 2020年12月
    • 2020年11月
    • 2020年9月
    • 2020年7月
    • 2020年6月
    • 2020年5月
    • 2020年4月
    • 2020年3月
    • 2020年2月
    • 2020年1月
    分类目录
    • Cobalt Strike
    • Crypto
    • CTFWP
    • CTF相关知识点
    • Docker
    • JavaScript
    • Misc
    • MYSQL
    • NodeJS
    • PHP
    • python
    • Web
    • WEB安全漏洞学习
    • XSS
    • 代码审计
    • 内网渗透
    • 数据结构
    • 未分类
    • 计算机小技巧
    • 靶机渗透
    功能
    • 登录
    • 项目feed
    • 评论feed
    • WordPress.org
    分类目录
    Copyright © 2021 网站备案号: 蒙ICP备20000552号-1
    smarty_hankin 主题. Designed by hankin
    主页
    页面
    博主
    purplet 管理员
    努力并有所方向
    157 文章 0 评论 21111 浏览
    测试
    测试