本文是针对刚学编程的小白,都是一些基础知识,如果想了解更多深层一点的东西,欢迎移步本人博客!!
博客地址 点击跳转
什么是Json?
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于ECMAScript的一个子集。相比于XML,json易于人阅读和编写,同时也易于机器解析和生成,目前数据传递基本上都使用json。
JSON有两种结构:对象 和 数组,两种结构相互组合从而形成各种复杂的数据结构。
数据在键值对中
数据由逗号分隔
花括号保存对象
方括号保存数组
最大事件源
<script>
var box = document.getElementById('box');
// 页面上最大的点击事件 就是document.onclick
document.onclick = function(e){
// IE浏览器中e不支持,支持event
// 兼容写法
var e = e || event;
box.innerHTML = e.clientX +'<br>'+ e.clientY;
}
// 这里的 e 是 event对象
box.onclick = function(e){
var e = e ||event;
box.innerHTML = e.clientX +'<br>'+ e.clientY;
//通过事件获取的clientX和clientY都是表示点击的时候,屏幕的实际坐标
//以屏幕的左上角作为原点
}
</script>
给对象设置属性
<script>
// 获取属性
var box = document.getElementById('box');
//1.设置属性
//一般两个参数,第一个参表示属性,属性的值
box.setAttribute('title','我是盒子');
console.log(box.getAttribute('title'));
box.removeAttribute('title');
console.log(box.getAttribute('title'));
</script>
Json数据的认识
<script>
//1.json用来存储数据,但是数据不可以重复,没有顺序
//2.json通过key:value来存储
//3.创建json,通过{}
//标准的json数据key必须用双引号
var personJson = {"name":"张三","age":"16","sex":"不男不女"};
var personJson1 = {'name':'张三','age':'16'};
var personJson2 = {name:'张三',age:'16'};
//4.访问json,通过key
//如果通过中括号访问json,key需要些全称,如果有引号需要加上引号,没有引号也要加上引号
console.log(personJson2.name);
// console.log(personJson2[name]);
</script>
Json数据的遍历
<script>
// json
//通过for in来遍历json
//key遍历的是json 得到的是属性 json[key]得到的是属性值
for(var key in personJson){
console.log(personJson[key]);
}
// 数组
var arr = [1,2,3,4,5,7];
for(var key in arr){
console.log(k); // 得到是索引号
console.log(arr[k]); // 得到是值
}
for(var key in document){
//如果for in循环中后面是一个对象,那么key代表属性
document.write(key+':'+document[key]+'<br>');
}
</script>
通过Json设置样式
<script>
var box = document.getElementById('box');
var cssJson = {"width":"100px","height":"100px","background":"blue"};
for(var key in cssJson){
css(box,key,cssJson[key]);
}
// 样式的抽取封装
function css(dom,key,value){
dom.style[key] = value;
}
</script>
------------- 网络请求&&内存分配--------------
HTTP协议
-
和服务器进行交互
-
HTTP协议默认是短链接
TCP/UDP
-
是用来做链接传输的,默认不会断开链接, 都是长链接.
-
不需要的时候可以手动断开
-
TCP涉及三次握手,和服务器需要交互三次,安全性高
-
UDP只需要和服务器交互一次就可以(QQ和微信等聊天工具用的都是UDP)
socket
-
socket:管道 针孔
-
用来连接客户端和服务器, 包含长链接和短链接
-
是对TCP/UDP/HTTP的封装
-
客户端和服务器都有inputstream和outputstream 两个流, 一个用来输入,一个用来输出.
-
服务器端给客户端主动发送信息, 需要建立长链接
安卓和Js内存管理机制
-
内存分配机制包括栈/堆/静态区
-
js采用的是垃圾内存回收机制,栈区的内存不需要管理,栈的内存会自动管理,一般数字/字符/布尔值放在栈区
-
垃圾内存回收机制:当发现一个对象在内存中没有使用的时候, 我们就直接把他回收,使用:1.计数器法 2.标记法
-
安卓采用的就是垃圾内存回收机制,所有会越用越卡.现在在通过硬件加大内存,来解决卡的现象
-
事件指令和对象放在堆中
// 对于一个对象,左边的对象放在栈中,右边的实际对象放在堆中
// 通过指针连接,栈中的对象指向堆中的实际对象
var myDate = new Date()
-
我们所说的内存管理,是管理堆中的内存,栈里面的不用管
IOS内存管理机制
-
IOS通过OC语言 和 Swift语言,现在都用OC开发
-
C语言是面向过程的语言,C语言一般开发镜像软件,所有的语言最终都转换成C语言,然后再转换成汇编
-
通过计数器时时管理内存,时时监测.以前是通过MRC(手动)管理,后来是通过ARC(自动)管理.所有内存管理机制要比安卓高很多
提升内存性能
-
尽量少用全局变量,因为全局变量一直存在
-
尽量抽取函数
-
管理闭包一定要精准,没有内存泄漏
数据结构的类型
-
数组
-
队列(先进先出)
-
栈(先进后出)
-
堆
-
链表(双向链表和单向链表)