发表于: 2019-09-12 18:54:41
1 876
今天完成的事:学习任务10最后要求的js前期准备;对任务10做修改;师兄可以看一下是不是理解有问题;写完了任务11;发现任务11容易写难改;
明天要完成的事:初步熟练less;修改任务11;并对之前的内容加深理解;继续学习布局;
难题:讲真的刚刚看到作用域真的傻了;啥玩意;我去;啥意思啊;又是变量又是数据的;还是个集合;还变量也是服务器真心懵逼;还有less刚刚看一堆要安装的;我就安了个easy less就能用了;其他的;我也不知道咋办;
然后看了师兄的对less的入门教学:https://blog.csdn.net/jnshu_it/article/details/85243096;
还是没啥概念;唉
收获:less:
&
这个符号在less中可以代替父级元素,
(1)变量是存储数据值的容器。
在编程中,类似代数,我们使用变量(比如 price1)来存放值。
在编程中,类似代数,我们在表达式中使用变量(total = price1 + price2)。
所有 JavaScript 变量必须以唯一的名称的标识。
这些唯一的名称称为标识符。
标识符可以是短名称(比如 x 和 y),或者更具描述性的名称(age、sum、totalVolume)。
构造变量名称(唯一标识符)的通用规则是:
- 名称可包含字母、数字、下划线和美元符号
- 名称必须以字母开头;(什么鬼跟下一句矛盾啊)
- 名称也可以 $ 和 _ 开头(但是在本教程中我们不会这么做)
- 名称对大小写敏感(y 和 Y 是不同的变量)
- 保留字(比如 JavaScript 的关键词)无法用作变量名称
(我的理解:变量就是一个容器;里面存着数值或者说属性的容器你要给这些容器或者说数值赋予名称或者说是ID以确保不会错)
(2)JavaScript 标识符对大小写敏感。
在js中(=)是赋值运算符;x=x+5
(计算 x + 5 的值并把结果放入 x 中。x 的值递增 5。)
是合理的把x+5的值赋予x
注释:JavaScript 中的“等于”运算符是 ==。
声明(创建)变量:在js中创建变量被称为“声明”变量。
可以通过 var 关键词来声明 JavaScript 变量:
但一条语句可以声明很多变量。并使用逗号分隔变量即可:
var lastname="Doe", age=30, job="carpenter";
一条语句中声明的多个不可以赋同一个值
var x,y,z=1;
(我的理解:声明就是自我介绍;告诉别人你存在;你是一个对象或者说语句;一次自我介绍可以告诉别人你的很多值或者属性或者说变量)
(3)在计算机程序中,经常会声明无值的变量。未使用值来声明的变量,其值实际上是 undefined。
在执行过以下语句后,变量 carname 的值将是 undefined:
{不知道有啥用}
(4)重新声明 JavaScript 变量
如果重新声明 JavaScript 变量,该变量的值不会丢失:
在以下两条语句执行后,变量 carname 的值依然是 "Volvo":
var carname;
(声明2次的作用是啥?没百度到)
(5)JavaScript 变量还能保存其他数据类型,比如文本值 (name="Bill Gates")。
在 JavaScript 中,类似 "Bill Gates" 这样一条文本被称为字符串。
JavaScript 变量有很多种类型,但是现在,我们只关注数字和字符串。
当您向变量分配文本值时,应该用双引号或单引号包围这个值。
当您向变量赋的值是数值时,不要使用引号。如果您用引号包围数值,该值会被作为文本来处理。
(简单的来说就是文本值不会向数字一样发生运算;所以除非要直接显示数字不然不要加引号)
(6)声明(创建) JavaScript 变量
在 JavaScript 中创建变量通常称为"声明"变量。
我们使用 var 关键词来声明变量:
变量声明之后,该变量是空的(它没有值)。
如需向变量赋值,请使用等号:
不过,您也可以在声明变量时对其赋值:
(就很奇怪:(2)中对=的理解就是赋值;==才是等于号;结果到这说重复了)
给自己的提示:js的点击事件:
<button onclick="myFunction('Harry Potter','Wizard')">点击这里</button>
<script>
function myFunction(name,job){
alert("Welcome " + name + ", the " + job);
}
</script>
上面的按钮中
onclick=是点击事件发生时;
myFunction (name,job)是函数(输入参数name,输入参数job)
function myFunction(name,job){
alert("Welcome " + name + ", the " + job);
}声明我的函数(参数){
提醒(“welcome”+参数+“the”+参数job)
}
“alert是HTML DOM 中用到了一种脚本语言,它的中文意思是“提醒”。它是JavaScript或VBscript脚本语言中窗口window对象的一个常用方法;其主要用法就是在你自己定义了一定的函数以后,通过执行相应的操作,所弹出对话框的语言。并且alert对话框通常用于一些对用户的提示信息。”
(1)函数的定义方式:
JS 使用关键字 function 定义函数。
函数可以通过声明定义,也可以是一个表达式。
(2)函数是个啥:
函数是由事件驱动的或者当它被调用时执行的可重复使用的代码块。
函数就是包裹在花括号中的代码块,前面使用了关键词 function:
当调用该函数时,会执行函数内的代码。
function functionname()
{
// 执行代码
}
可以在某事件发生时直接调用函数(比如当用户点击按钮时),并且可由 JavaScript 在任何位置进行调用。
JavaScript 对大小写敏感。关键词 function 必须是小写的,并且必须以与函数名称相同的大小写来调用函数。
(3)调用带参数的函数:
在调用函数时,您可以向其传递值,这些值被称为参数。
这些参数可以在函数中使用。
您可以发送任意多的参数,由逗号 (,) 分隔:
变量和参数必须以一致的顺序出现。第一个变量就是第一个被传递的参数的给定的值,以此类推。
(4)带有返回值的函数:
有时,我们会希望函数将值返回调用它的地方。
通过使用 return 语句就可以实现。
在使用 return 语句时,函数会停止执行,并返回指定的值。
语法
{
var x=5;
return x;
}
上面的函数会返回值 5
注意: 整个 JavaScript 并不会停止执行,仅仅是函数。JavaScript 将继续执行代码,从调用函数的地方。
函数调用将被返回值取代:
myVar 变量的值是 5,也就是函数 "myFunction()" 所返回的值。
即使不把它保存为变量,您也可以使用返回值:
"demo" 元素的 innerHTML 将成为 5,也就是函数 "myFunction()" 所返回的值。
您可以使返回值基于传递到函数中的参数:
局部 JavaScript 变量
在 JavaScript 函数内部声明的变量(使用 var)是局部变量,所以只能在函数内部访问它。(该变量的作用域是局部的)。
您可以在不同的函数中使用名称相同的局部变量,因为只有声明过该变量的函数才能识别出该变量。
只要函数运行完毕,本地变量就会被删除。
全局 JavaScript 变量
在函数外声明的变量是全局变量,网页上的所有脚本和函数都能访问它。
JavaScript 变量的生存期
JavaScript 变量的生命期从它们被声明的时间开始。
局部变量会在函数运行以后被删除。
全局变量会在页面关闭后被删除。
向未声明的 JavaScript 变量分配值
如果您把值赋给尚未声明的变量,该变量将被自动作为 window 的一个属性。
这条语句:
将声明 window 的一个属性 carname。
非严格模式下给未声明变量赋值创建的全局变量,是全局对象的可配置属性,可以删除。
(这段话没看懂;我理解的大概意思是:在函数内的声明变量只能在函数内使用;
在不同的函数中局部变量的名称或者说id是可以相同的(简单来说不同的函数就是社会上不同的地方比如学校比如修真院而名称就是你在学校的绰号);且在不同函数中都需要在此做局部变量的声明(等于又一次创造出一个局部变量但2个变量是一样的(或者说你每到一个新的地方就要有一次新的自我介绍);且2次声明是不用赋值吧?);每次函数结束局部变量就会被删除(每次离开一个地方就会被遗忘);而全局变量则不行;全局变量在函数外;所有脚本和函数都能访问它;(全局变量就是你的身份证号码;在哪都能用)举个例子:局部函数就是青楼里的姑娘;给钱(声明)就有;全局变量就是喜欢你的舔狗;不给钱也能用(2者区别在于全局舔狗有就可以拿来用;而局部要给钱))这个比喻有点不太好听;
最后那一段说的是:未声明的变量赋值创建的全局变量自动视为window的一个属性:(在函数外没有声明;直接给它赋值的就是( window 的一个属性)我也没理解;百度到的window对象不知道是啥玩意;)
JavaScript 作用域
作用域是可访问变量的集合。
(看完后面,给句自己的理解:作用域就是这个变量或者函数起作用或者能起作用的一个地方或者说存在的一个地方;因为作用域是集合所以它本身就代表了组成这个集合的变量;函数;对象的位置;因此不管是作用域在函数内修改。还是变量在函数内声明,变量就是局部作用域;这本身就是作用域或者说这个集合的特性只有存在才能起作用)
在 JavaScript 中, 对象和函数同样也是变量。
在 JavaScript 中, 作用域为可访问变量,对象,函数的集合。
JavaScript 函数作用域: 作用域在函数内修改。
(刚刚看到这有点蒙;仔细一想就是在js中作用域是可访问变量,对象,函数的集合;就这么简单;唯一有所改变的是对象和函数变成了变量(我后面的理解是对象是变量下面有说明;函数随着输入的参数变化而变化而且函数本身就是个代码块;代码块也是存在不同的执行方案的;比如说if a>b 则 输出5 or else 输出3);作用域在函数内修改(作用域本身就是集合在集合内修改或者说因为集合内什么东西的改变而改变))
JavaScript 局部作用域
变量在函数内声明,变量为局部作用域。
局部变量:只能在函数内部访问。
因为局部变量只作用于函数内,所以不同的函数可以使用相同名称的变量。
(局部变量在函数开始执行时创建,函数执行完后局部变量会自动销毁。)这个上面有说;
函数参数
函数参数只在函数内起作用,是局部变量。
(参数在函数内起作用;(只在学校起作用不在社会起作用)对外界无影响也不是全部都能用的所以是局部变量)
HTML 中的全局变量
在 HTML 中, 全局变量是 window 对象: 所有数据变量都属于 window 对象。
{(全局变量好理解(就是你出生时的身份证哪都能用);window对象没太明白;全局对象之前说过在函数外声明;百度到window对象没看懂)
你的全局变量,或者函数,可以覆盖 window 对象的变量或者函数。
局部变量,包括 window 对象可以覆盖全局变量和函数。
JavaScript 对象
JavaScript 对象是拥有属性和方法的数据。
(感觉说的很模糊)
在 JavaScript中,几乎所有的事物都是对象。
对象也是一个变量,但对象可以包含多个值(多个变量)。
var car = {type:"Fiat", model:500, color:"white"};
在以上实例中,3 个值 ("Fiat", 500, "white") 赋予变量 car。
在以上实例中,3 个变量 (type, model, color) 赋予变量 car。
![]() | JavaScript 对象是变量的容器。 |
---|
(我的理解就是:赋予car 3个属性或者说变量;这三个值就是Fiat", 500, "white;
js对象是变量的容器;也就是说对象是(数据或者说属性的容器)一个综合;而且对象也是变量因为随着赋予他的值发生改变他也会变化)
对象定义
你可以使用字符来定义和创建 JavaScript 对象:
实例
定义 JavaScript 对象可以跨越多行,空格跟换行不是必须的:
对象属性
可以说 "JavaScript 对象是变量的容器"。
但是,我们通常认为 "JavaScript 对象是键值对的容器"。
键值对通常写法为 name : value (键与值以冒号分割)。
键值对在 JavaScript 对象通常称为 对象属性。
(我的理解:对象就是属性(可以是变量)的容器;属性就是你长啥样帅不帅就是你的一个属性;键值对的写法:赋予对象的属性名称:属性的值;)
对象方法
对象的方法定义了一个函数,并作为对象的属性存储。
对象方法通过添加 () 调用 (作为一个函数)。
该实例访问了 person 对象的 fullName() 方法:
document.getElementById("demo").innerHTML = person.fullName();
(我感觉就是给你一个函数形象点讲就是给对象一个能力比如点击事件或者别的能力然后我要用就叫你过来;给你某个数值或者进行某个操作让你运用你的能力给我一个答案或者你自己做出某些操作;)
访问对象方法
你可以使用以下语法创建对象方法:
你可以使用以下语法访问对象方法:
通常 fullName() 是作为 person 对象的一个方法, fullName 是作为一个属性。
有多种方式可以创建,使用和修改 JavaScript 对象。
同样也有多种方式用来创建,使用和修改属性和方法。
(这个还没到使用阶段没啥理解;不过看上去挺简单的)
JavaScript Array(数组) 对象
数组对象的作用是:使用单独的变量名来存储一系列的值。
(如果说变量是有id有名字的的;数组就是档案库可以把叫某某某这一类人编类:并储存他们各自的属性或者说值;并且在档案库每个人都有自己的编号)
什么是数组?
数组对象是使用单独的变量名来存储一系列的值。
如果你有一组数据(例如:车名字),存在单独变量如下所示:
var car2="Volvo";
var car3="BMW";
然而,如果你想从中找出某一辆车?并且不是3辆,而是300辆呢?这将不是一件容易的事!
最好的方法就是用数组。
数组可以用一个变量名存储所有的值,并且可以用变量名访问任何一个值。
数组中的每个元素都有自己的的ID,以便它可以很容易地被访问到。
创建一个数组
创建一个数组,有三种方法。
下面的代码定义了一个名为 myCars的数组对象:
1: 常规方式:
myCars[0]="Saab";
myCars[1]="Volvo";
myCars[2]="BMW";
2: 简洁方式:
3: 字面:
访问数组
通过指定数组名以及索引号码,你可以访问某个特定的元素。
以下实例可以访问myCars数组的第一个值:
以下实例修改了数组 myCars 的第一个元素:
[0] 是数组的第一个元素。[1] 是数组的第二个元素。 |
(通过名字和你的编号可以迅速找到你;并知道你的属性,值;)
在一个数组中你可以有不同的对象
所有的JavaScript变量都是对象。数组元素是对象。函数是对象。
因此,你可以在数组中有不同的变量类型。
你可以在一个数组中包含对象元素、函数、数组:
myArray[1]=myFunction;
myArray[2]=myCars;
(你的所有东西都可以被记录;)
数组方法和属性
使用数组对象预定义属性和方法:
var y=myCars.indexOf("Volvo") // "Volvo" 值的索引值
(没看太懂)
JavaScript for 循环
循环可以将代码块执行指定的次数。
如果您希望一遍又一遍地运行相同的代码,并且每次的值都不同,那么使用循环是很方便的。
我们可以这样输出数组的值:
for (var i=0;i<cars.length;i++){
document.write(cars[i] + "<br>");}
不同类型的循环
JavaScript 支持不同类型的循环:
- for - 循环代码块一定的次数
- for/in - 循环遍历对象的属性
- while - 当指定的条件为 true 时循环指定的代码块
- do/while - 同样当指定的条件为 true 时循环指定的代码块
For 循环
for 循环是您在希望创建循环时常会用到的工具。
下面是 for 循环的语法:
{
被执行的代码块
}
语句 1 (代码块)开始前执行
语句 2 定义运行循环(代码块)的条件
语句 3 在循环(代码块)已被执行之后执行
语句 1
通常我们会使用语句 1 初始化循环中所用的变量 (var i=0)。
语句 1 是可选的,也就是说不使用语句 1 也可以。
您可以在语句 1 中初始化任意(或者多个)值:
语句 3
通常语句 3 会增加初始变量的值。
语句 3 也是可选的。
语句 3 有多种用法。增量可以是负数 (i--),或者更大 (i=i+15)。
语句 3 也可以省略(比如当循环内部有相应的代码时):
(以上具体用倒是可以;原理跟函数比较接近)
JavaScript if...Else 语句
条件语句用于基于不同的条件来执行不同的动作。
条件语句
通常在写代码时,您总是需要为不同的决定来执行不同的动作。您可以在代码中使用条件语句来完成该任务。
在 JavaScript 中,我们可使用以下条件语句:
- if 语句 - 只有当指定条件为 true 时,使用该语句来执行代码
- if...else 语句 - 当条件为 true 时执行代码,当条件为 false 时执行其他代码
- if...else if....else 语句- 使用该语句来选择多个代码块之一来执行
- switch 语句 - 使用该语句来选择多个代码块之一来执行
if 语句
只有当指定条件为 true 时,该语句才会执行代码。
语法
{
当条件为 true 时执行的代码
}
请使用小写的 if。使用大写字母(IF)会生成 JavaScript 错误!
if...else 语句
请使用 if....else 语句在条件为 true 时执行代码,在条件为 false 时执行其他代码。
语法
{
当条件为 true 时执行的代码
}
else
{
当条件不为 true 时执行的代码
}
if...else if...else 语句
使用 if....else if...else 语句来选择多个代码块之一来执行。
语法
{
当条件 1 为 true 时执行的代码
}
else if (condition2)
{
当条件 2 为 true 时执行的代码
}
else
{
当条件 1 和 条件 2 都不为 true 时执行的代码
}
(数学里的超简单;今天有不少认识;希望下次回来看的时候有新的理解)
然后安装less;额就直接在VSCode下一个easy less好像就完事了;
额;
评论