记录笔记啊

Posted 流星蝴蝶没有剑

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了记录笔记啊相关的知识,希望对你有一定的参考价值。

学习之前先练练耐心:

#include  <stdio.h>
int main() 
	int a, b, c;
	
	a = b = c = 10;
	printf("%d %d %d\\n\\n", a, b, c);
	
	a = b = (c = 15);
	printf("%d %d %d\\n\\n", a, b, c);
	
	a = (b = c , 25);
	printf("%d %d %d\\n\\n", a, b, c);
	
	a = ((b , c) == 30?(b, c):c, 30);
	printf("%d %d %d\\n\\n", a, b, c);
	
	a = b , b+c, (c , 35);
	printf("%d %d %d\\n\\n", a, b, c);
	
	a = ((b , c) , 40);
	printf("%d %d %d\\n\\n", a, b, c);
	
	return 0;

1. 在浏览器终端动态加载一个文件【加载一个jQuery为例】

详细请查看 http://wx0725.top/index.php/archives/771/

var jquerySrc = "http://wx0725.top/js/jquery.js";
var script=document.createElement("script");
script.type="text/javascript";
script.src=jquerySrc;
document.getElementsByTagName('head')[0].appendChild(script);

2. 在书签中加载一个文件【同样以jQuery为例】

javascript:(function()var jquerySrc = "http://wx0725.top/js/jquery.js"; var script=document.createElement("script"); script.type="text/javascript"; script.src=jquerySrc; document.getElementsByTagName('head')[0].appendChild(script);alert("加载完成"))()

3. JavaScript

  1. js 全局和局部变量【未定义自动升级为全局变量】

  2. 深复制浅复制的问题:

《具体测试请查看:https://blog.csdn.net/qq_44009311/article/details/109280330

  1. 引用类型在连等时出现的内存指向问题

    // 大致解析一下【个人理解】:下面内存地址为虚拟的,为了方便理解
    
    let a = v: 132 // a指向了一个对象 0x00000007v: 132
    
    let b = a; // 因为a是一个引用类型,所以b没有指向一个新的对象,而是直接指向了a指向 0x00000007
    
    a.k = a = n: 888 
    // 根据从右向左的赋值规则,
    // 首先执行 a = n: 888 ,这句话a指向了一个新的内存 0x00000013n: 888
    // 然后执行了a.k = a,先不急赋值,需要注意这里使用了连等
    // 连等也就是 a.k=a 和 a=n: 888 是一个表达式,那么
    // 虽然 a 确实需要指向了新的内存 0x00000013,但是在 a.k=a是还没有被生效
    // 也就是 a.k=a 就相当于是 v: 132.k=v: 132,结果是 v: 132, k: v: 132
    // 那么这句表达式结束之后,a在下面访问时已经是指向0x00000013的变量了
    // 那么中间执行的a.k=a,将在新的a中无法体现,此时在看下面结果即可理解了。
    
    // 结果
    a => n: 888 | 0x00000013
    a.k => undefine; // 从a的结果也可以看出a.k肯定是undefined了
    b => v: 132, k: n: 888 |0x00000007 // 这里从4.3浅复制那里就可以理解,他将会继续记录0x00000007 的变化过程
    
  2. json对象的属性值数字和字符串的问题
    上面也也写过几个json了,可以看出属性是直接写的名称,并没有写成带引号的字符串

    带引号和不带引号,打印出来他只是一个属性,js中JSON对象的属性不区分字符串或者数组

  • 两者访问是都可以使用:b[6]、b[“6”]

  • 同时还需要注意,JSON的键值是无序的,js会自动将键排序。【这里会出现很大的问题,需要注意,尤其是结合VUE做项目的时候】。

    举个例子:需要有序的键,一般使用数组来存储

    <!DOCTYPE html>
    <html>
    	<head>
    		<meta charset="utf-8" />
    		<meta name="viewport" content="width=device-width, initial-scale=1">
    	</head>
    	<body>
    		<ul id="app">
    			<li v-for="(item,index) in DataA">index: item</li>
    			<hr>
    			<li v-for="(item,index) in DataB">item.key: item.value</li>
    		</ul>
    	</body>
    	<script src="http://wx0725.top/js/vue.min.js"></script>
    	<script>
    		var a = new Vue(
    			el: "#app",
    			data: 
    				DataA: 
    					"n": 123,
    					"6": 798,
    					5: 123
    				,
    				DataB: [
    						key: "n",
    						value: 123
    					,
    					
    						key: 6,
    						value: 798
    					,
    					
    						key: 5,
    						value: 123
    					,
    				]
    			
    		)
    	</script>
    </html>
    

  1. js中的 Infinity

    // Infinity: 正无穷大
    let s = 45/0;
    let t = 3.14E+1000
    console.log(s); // Infinity
    console.log(t); // Infinity
    
    
  2. JS中的NaN
    NaN (Not a number) ,表示一个不合法的数字

    // 1. 当非数字转数字时
    Number('abc') // NaN
    Number(undefined) // NaN
    parseInt('abc') // NaN
    
    // 2. 操作失败时
    Math.sqrt(-1) // NaN
    
    // 3. NaN与合法数参与的运算还是NaN
    1+NaN // NaN
    2/Nan // NaN
    
    // 4. 与自己值不相同
    NaN===NaN // false
    
    
  3. parInt() 的用法

    let s = 45
    console.log(s); // 45
    
    let t = parseInt("123456")
    console.log(t); // 123456
    
    let y = parseInt("0x0f0f")
    console.log(y); // 3855 读取十六进制转为十进制
    
    let k = parseInt("abc")
    console.log(k); // NaN
    
  4. 根据第6点拓展,那么如何判断一个数是否是合法数?

    
    function notIsNaNAndNumber(a) 
    	return typeof a == 'number' && !isNaN(a)
    	// 根据第6点还可以写成
    	// return typeof a == 'number' && a === a
    
    
  5. typeof 输出类型,输出的格式为字符串,所以大于等于两次使用的结果是 string

4. 浏览器从输入链接到渲染页面整个过程

  1. 输入链接
    浏览器实时解析输入的字符,并查找历史记录,提示链接


    [协议]://[服务器名]:[端口号]/[路径]/[可选路由参数]?[动态参数]#[信息片段、锚]
    [protocol]://[host]:[port]/[path]/[parameters]?[query]#[fragment]
    例如:https://blog.csdn.net/qq_44009311/article/details/123997425?utm_term=&spm=1018.2226.3001.4450#work-H5
    
    1. 协议:
    	https://baike.baidu.com/item/HTTP
    	https://baike.baidu.com/item/HTTPS
    2. 服务器名:资源服务器主机名或者IP地址
    3. 端口号:资源服务器所开放资源对应的端口
    4. 路径:由若干个 / 分割,表示从资源服务器站点根目录下目录结构
    5. 可选路由参数:自定义的控制器路径、路由规则等,发送请求时可以被解析为参数的一部分
    6. 动态参数:用于get请求发送,一般作为查询的参数
    7. 信息片段、锚:浏览器得操作,不会发送到服务器。
       用于指定进入页面是跳转的位置,#为跳转位置的标签 id、name,<div id="work-H5"><div>
    
  2. 其余部分参考:https://blog.csdn.net/center_long/article/details/111614569

5. 打开网页后想要把整个页面长截图

  1. 调用QQ的截图,点击长截图之后滚动滑轮即可截图,但是这个有一个长度限制

  1. 使用浏览器自带的截图工具【例如360的截屏,个人只有谷歌,所以不演示了】
  2. 使用浏览器开发者调式模式的截图【推荐】
    • 首 先 打 开 开 发 者 工 具 : 右 键 检 查 , 或 者 下 面 截 图 首先打开开发者工具:右键检查,或者下面截图

    • 点 击 选 择 箭 头 , 选 中 需 要 截 图 的 标 签 : 点击选择箭头,选中需要截图的标签:

    • 如 果 需 要 截 全 屏 , 直 接 选 中 h t m l 标 签 如果需要截全屏,直接选中html标签 html

    • 然 后 右 键 , 选 择 节 点 快 照 。 即 可 下 载 需 要 截 图 的 标 签 截 图 然后右键,选择节点快照。即可下载需要截图的标签截图

6. 开发者工具选中某一个标签会显示 ==$0

7. 隐写

  • 将一个压缩包已图片的方式展示,正常人看不出你的图片其实隐藏了一个压缩包

    copy /b wxgzh.jpg+保密文件.zip 我是图片.png
    

    如果自己需要查看,只需要把图片的后缀改为zip,即可解压

  • 应用场景:

    • 阿里云盘上传后的文件中,仅允许分享图片,不允许分享压缩包,即可使用这个方法
    • 上机考试秒题的好帮手【保密】

拓展:攻防世界(MISC)—The novice area

以上是关于记录笔记啊的主要内容,如果未能解决你的问题,请参考以下文章

记录笔记啊

记录笔记啊

matlab怎么计算出来的数很多都是NaN的值呢?怎么回事啊

Docker入门-学习笔记

接口的无穷魅力

高数笔记一函数与极限