王宇凡_20210118王宇凡
知识点总结
JavaScript
数据类型
Number 数值型:整数和浮点数
Boolean 布尔类型:true/false
String 字符串类型:包含字符和字符串
Null 只有一个值null
Undefined 未定义/变量未初始化时的类型,只有一个值undefined
typeof操作符:判断指定的变量数据类型
引用类型有:对象(Object)、数组(Array)、函数(Function)
数字可以与字符串进行比较,字符串可以与字符串进行比较。字符串与数字进行比较的时候会先把字符
串转换成数字然后再进行比较
循环
乘法口诀表
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<script type="text/javascript">
for(var i = 1; i <= 9;i++){
for(var j = 1; j <= i; j++){
document.write(j + "*" + i + "=" + i*j + " | ");
}
document.write("<br>");
}
</script>
</body>
</html>
轮播图
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style type="text/css">
#box{
width: 600px;
height: 450px;
overflow: hidden;
/* background-color: red; */
}
#content{
/* position:relative;top:0px; */
transition: 1s;
}
#box img{
width: 100%;
height: 450px;
float: left;
}
</style>
</head>
<body>
<div id="box">
<div id="content">
<img src="img/1.jpg" />
<img src="img/2.jpg" />
<img src="img/3.jpg" />
<img src="img/4.jpg" />
<img src="img/5.jpg" />
</div>
</div>
<script type="text/javascript">
var box = document.querySelector("#box");
var content = document.querySelector("#content");
var imgs = document.querySelectorAll("#content img");
content.style = "position:relative;top:0px;";
var t = 0;
var height = box.offsetHeight;
var max = height * imgs.length;
// content.style.height = max + "px";
setInterval(function(){
t -= height;
if(Math.abs(t) >= max){
t = 0;
content.style.transition = "none"
}else{
content.style.transition = "1s";
}
content.style.top = t + "px";
},3000);
</script>
</body>
</html>
函数和变量
一,基本类型和引用类型的值
基本类型值指数据的五种基本类型,undefined、null、布尔值,数字和字符串。值得注意的是在很多语言中,字符串都是以对象的形式表现的。引用类型的值是指那些可能由多个值构成的对象。值得注意的有以下几点:
1,复制引用类型值
引用类型是存在内存里面的,当从一个变量向另一个变量复制引用类型的值时,同样也会将存储在变量对象中的值复制一份放到为新变量分配的空间中,不同的是,这个副本实际上是一个指针,而这个指针指向存储在堆中的一个对象。复制操作结束后,两个变量实际上将引用同一个对象,因此,改变其中一个变量,就会影响另一个变量。
2,传递参数
函数外部的复制给函数内部的参数,就和把值从一个变量复制到另一个变量一样。对这个对象的操作会生效,但是对这个变量重新赋值的话,操作不会生效。
3,类型检测
基本数据类型用typeof,引用数据类型用instanceof。
二,指向环境及作用域、
局部变量继承关系和其他语言差不多。值得注意的是js没有块级作用域。在其他类C的语言中,由花括号封闭的代码块都有自己的作用域(比如if,for),但是js不是。在if和for里面定义的局部变量,在判断外依然可以获取。
1,垃圾收集器会在运行的时候给存储在内存的所有变量加上标记。
2,去掉环境中的变量以及被环境中的变量引用的变量的标记
3,把仍然有标记的变量销毁,回收内存空间
JSON
json,是一种数据格式,在与后端的数据交互中有较为广泛的应用。
JSON是 (JavaScript Object Notation, JS 对象标记),它是一种数据交换格式。在JSON出现之前,大家一直用XML来传递数据。因为XML是一种纯文本格式,所以它适合在网络上交换数据。XML本身不算复杂,但是,加上DTD、XSD、XPath、XSLT等一大堆复杂的规范以后,任何正常的软件开发人员碰到XML都会变得十分复杂,即使你努力钻研几个月,也未必搞得清楚XML的规范。
转义
JSON是一个提供了stringify和parse方法的内置对象
stringify将js对象转化为符合json标准的字符串
parse将符合json标准的字符串转化为js对象
JSON 的语法规则
数组(Array)用方括号(“[]”)表示。
对象(Object)用大括号(”{}”)表示。
名称/值对(name/value)组合成数组和对象。
名称(name)置于双引号中,值(value)有字符串、数值、布尔值、null、对象和数组。
并列的数据之间用逗号(“,”)分隔
如:
varjson= {"password":123456,"name":"myname","Booleans":true,"Array":[x,y,z],"object":{}}
个人心得
在今天的js学习中,用var声明变量,在运行时,会发生提升。而let不会。对于基本数据类型来说,它们是存储在栈区 ,对于引用数据类型说来,它们是存储在堆区。(数组存储在堆区),今天的JSON学习也让我得到了一个语法简洁,美观的数据格式,在写JS对象中,可以利用JSON来简化自己的代码。提升效率。
近期评论