JavaScript基础

1.作用域

1.1定义一个变量:

var a = 1;

1.2定义一个对象:

var bianchma = {zhiyuan:null}

1.3定义一个函数:

1.function a(){}
2.var b=function(){}
3.!(function(){ })

1.4全局变量

a is not de
因为局部变量只作用于函数内,所以不同的函数可以使用相同名称的变量。

局部变量在函数开始执行时创建,函数执行完后局部变量会自动销毁。

2.自执行函数——在js加载的时候就能自己运行
>!(function(){
	console.log(2)
})()
4
<true

函数必须有名字,
在这里插入图片描述
所以,用括号括起来,就成了自执行函数(闭包,匿名函数)

3.内部函数如何外部调用?

我们输入如下代码

!(function(){
function jm(){
    console.log('加密')
}
	})()
jm();

Ctrl+enter运行在这里插入图片描述
得到jm未定义,所以需要定义全局变量,进行赋值

var jm_;
!(function(){
function jm(){
    console.log('加密')

}
jm_ = jm
	})()

在这里插入图片描述

4.变量类型转换:

+字符串 = 字符串//字符串的优先级最高

+""得到字符串:

var jm_;
!(function(){
function jm(){
    console.log('加密成功')

}
 jm_ = jm;
	})()
jm_ +""
->

在这里插入图片描述
在这里插入图片描述

5.JS 浏览器对象BOM

脱离浏览器,在外部不能直接使用的
windows 是一个全局变量,是由浏览器提供的,组成要素有:

  • 浏览器环境
  • 引擎的环境(js虚拟机/VM,html渲染环境)
  • 自己写的代码

对于爬虫来说,缺的就是浏览器环境,也就是我们需要模拟的环境

 window={
	location:{
		href:"https://www.runoob.com/js/js-scope.html"
			}
	
		}

location:浏览器的本机地址
	host:"www.runoob.com"//主机名
	href:"https://www.runoob.com/js/js-scope.html"网址

补头:
在这里插入图片描述
在这里插入图片描述
浏览器支持,但是本=本机代码不支持的参数:

  • location
  • navigator
  • cookie
  • window
6.html渲染环境

在这里插入图片描述
详情链接:https://www.runoob.com/js/js-htmldom.html
document 全局变量——js的v8引擎会自带
需要补头——补齐该环境

事件-点击事件,滑动事件
奇葩的网站加密:利用submit提交按钮,比如菠菜网站

document.write

这样的代码,在浏览器和本机调试运行,结果是不一样的:

document = {
    write:function(){

    }
}
console.log(document.write + '')

浏览器运行结果: ƒ write() { [native code] }
本机 运行结果: function(){ }

解决思路:HOOK 方法document.write.toString
document.write + “”
document.write.toString()
在这里插入图片描述
在这里插入图片描述

2.HTML 事件的例子:
指纹:检测是不是同一个用户

  • 当用户点击鼠标时——//登录、
  • 当网页已加载时——//浏览器指纹-收集你是否为浏览器环境
  • 当图像已加载时——//滑块还原canvas,也可以做浏览器指纹
  • 当鼠标移动到元素上时——//浏览器指纹,无感校验
  • 当输入字段被改变时
  • 当提交 HTML 表单时
  • 当用户触发按键时

3.创建元素/标签document.createElement

var para = document.createElement("p")
undefined
para.className = "志远"
"志远"
document.body.appendChild(para)
<p class=​"志远">​</p>

在这里插入图片描述

​7.插件环境检测navigator.plugins在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值