看过这样一句话:“心里不要觉得苦,来人间是还债的;前世姻缘今生还,有相欠必相见,长则余生,短则几年。”
年轻时,稍微遇到点难题,就觉得这是翻不过去的山、跨不过去的河。
明明什么还没做,就开始唉声叹气,被担心和焦虑,占据了全部的身心。
长大后才就明白:人这辈子,除了生死,其他的都是小事。
在这无常中,平安就已是上上签。
一个人开始变成熟的标志,就是在面对困难时不再大呼小叫,一个人也可以独自面对。
在这个世上,没有任何人值得你饿肚子,也没有任何事值得你彻夜不眠。
这个世上,也没有什么是过不去的,那些曾经以为天大的事,最后都可以在时间中被解决。
老话说:“人之所以痛苦,在于追求错误的东西。”
每个人的人生不会太苦,也不会很甜,人都是一边得到,一边失去。
快乐时不要得意忘形,痛苦时不要轻言放弃。
春有百花秋有月,夏有凉风冬有雪。
人的一生会看到许多风景,如果你执着于某一个风景不肯放手,就会与下一个风景失之交臂。
世间总有一些事,是我们永远无法解释,也永远无法说清的。
我们必须试着接受自己的渺小和自己的无能为力。
回头看看,你已经从你认为不会过去的事情中幸存了下来。
别着急,慢慢来,你又不差的。
—————— 一禅小和尚
举例:以本地资源创建超链接
举例:可以以图片为媒介建立超链接
可以收集用户信息,表单展现之后,用户填写表单,点击提交按钮,提交数据给服务器
使用
form
标签画表单
一个网页当中可以有多个表单form
表单最终是需要提交数据给服务器的,**form
** 标签有一个 action
属性,整个属性用来指定服务器地址,就是我们将表单中的数据发送到的 哪个服务器的地址位置 ,action
属性和超链接中的 href
属性一样,都可以向服务器发送请求 request
表单是一个包含表单元素的区域。
表单元素是允许用户在表单中输入内容,比如:文本域(textarea)、下拉列表(select)、单选框(radio-buttons)、复选框(checkbox) 等等。
多数情况下被用到的表单标签是输入标签 **<input>
**表示输入域,。
输入类型是由 type 属性定义。接下来我们介绍几种常用的输入类型。
type属性值不要拼错或者多加空格,否则相当于设置了默认值状态:text→文本框
文本框,用于输入单行文本 | 文本框中的 value的值就是你输入的内容 |
密码框的 value 的值就是你输入的内容 | |
单选框,以name的值为一组,value的值需要自己指定 | |
多选框,name的值需要自己指定 | |
文件选择,用于之后上传文件 | name 需要存在才可以将文件上传给服务器 |
提交按钮,用于提交表单中的数据信息 | 注意 submit 只有在 中才有效果 |
注意 reset 只有在 中才有效果 | |
普通按钮,默认无功能,之后配合js添加功能 | 注意 button ,提交按钮无法将数据提交给服务器。 |
表单时以什么格式提交将数据提交给服务器的
重点:表单填写了 name
属性的数据,都会提交给服务器,而如果不想提交将该数据提交给服务器的话,就不要写 name
属性了
value
属性:用户输入的内容,提交之后会发送给后端服务器
name
属性:当前控件的含义,提交之后可以告诉后端发送过去的数据是什么含义。
注意: text,password
输入的内容就是 value
的值,不用定义 value,但是当用户没有输入内容时,value
也没有定义值,则value
的值默认值就是为 空字符串“” ,会将空字符串
localhost :表示我们将表单中的数据提交到 这个服务器中
8080 :端口,表示将表单中的数据,提交到这个服务器的这个8080端口的软件中
username :就是我们用户名 name 的值,hello :就是我们在文本框中输入的内容
当在 text,password
中定义了 value
则表示,文本框,和密码的默认值了,但是这个默认值,又没有用,当用户输入值时,还要把这个值给删除了,多了一步麻烦,所以一般都是不写 value的
举例: 在 文本框中和密码框中添加 value
我们是可以将表单嵌入到表格中的,上面写表格的时候,我们介绍了
举例: 将用户名,和密码框,以及提交,重置按钮都嵌入到表格中
form表单中method的属性值存在两个:如下:
get
: 采用 get 的方式提交的时候,用户提交的信息 会 显示在浏览器的地址栏上。
post
:采用 post 的方式提交的时候,用户提交的信息 不会 显示在浏览器地址栏上,当用户提交的信息中含有敏感信息,例如:密码,建议采用 post 方式提交
举例: 在form 表单中添加 method = get 的属性,地址栏上显示提交的信息
hidden 名为隐藏域,就是该定义的属性的数据,是不会在网页上显示的,网页上是看不到的,但是表单提交的时候其数据信息可以在地址栏上看到,数据会自动提交给服务器,主要用于节省页面的布局空间,可以配合 上面刚刚讲述的
method = post
使用。
所谓的单选框,就是多个结果中选择一个
我们使用的属性是 type = radio
,在单选框中,以 name值
相同的为同一组,同一组的数据只能选择一个数据提交给服务器。其中 checked
表示在单选框中默认选择的值。
注意:在单选框中,我们无法像文本框text
一样输入内容,只能选择内容,所以我们需要自己定义好,各个不同选项提交的 value值
数据
举例: 在 form 表单中添加单选框,并使用 checked
默认选择
所谓的复选框就是,就是可以选择一个或多个结果的值(多选多)
我们使用的属性是 type = "checkbox"
,在复选框中同样是以 name值
相同的为一组,每一组数据可以选择多个结果项,其中checked
表示在多选框中默认选择的值。
注意:在多选框中,我们无法像文本框text
一样输入内容,只能选择内容,所以我们需要自己定义好,各个不同选项提交的 value值
数据
网页中提供了多个选项的下拉列表
multipe = "multipe"
表示列表可以选择多个,需要注意的是,在下拉列表中多选需要按住Ctrl
才可以多选,
size = "x"
表示:下拉列表可以一次性显示出 x 个选项结果,不写的话,默认是 1 个。
,而<option></option>
表示下拉列表的每一项数据,有多少项就定义多少个option
,其中可以定义一个默认选中属性 selected
:表示下拉列表默认选中该项
注意:我们的下拉列表,无法让我们输入内容,所以当我们需要提交数据给服务器的时候,需要自己定义好,各个选项的 value值
提交的数据,以及 name
.
举例: 在form表单中添加下拉列表,指明一次性显示 size = 2 两项
在网页中提供可输入多行文本的表单控件
cols
: 表示文本域可见的宽度
rows
: 表示文本域可见的长度
注意文本域中没有 value
属性,用户填写的内容就是 value的值
右下角可以拖拽改变大小,实际开发时针对于样式效果推荐用CSS设置
举例: 在form表单中添加上文本域
file
控件提交文件
在网页中显示文件选择的表单控件,就是提交文件的一个控件
举例: 在 form表单中添加 file
控件,将文件提交给服务器,需要指明 name
的值,不用value,提交的文件就是value的值。
它们的相同点:都是只读的不可以修改的,使用reset
也是无法重置的。
不同点是:readoly
是可以将数据提交给服务器的,需要定义 name
属性
而disabled
是不可以将数据提交给服务器的,即便使用了 name
属性也是不会提交的 ,既然不会将数据提交给服务器,那么 name
我们也没有必要写了。
举例: 设置表单form文本框中可输入的字符数量为 3
HTML
文档中,任何元素(节点)都有 id
属性,id属性是该节点的 唯一标识,所以在一个文档当中 id值是不能重复的。
name,value
有关系,和 id没有关系
javaScript
语言,可以对HTML文档当中的任意节点进行增删改操作,id
的存在让我们获取元素节点,更方便,
HTML
文档是一个棵树,树上有很多节点,每个节点都有唯一的id
,javaScript
主要就是对这棵DOM
树上的节点进行增删改的。
举例: 为 下面所有的元素节点添加上 id
request
超链接<a href="URL"></a>
的 href
的值可以是某个网上的URL,也可以是本地资源的路径(绝对路径/相对路径),可以嵌入图片,作为媒介
name
属性:当前控件的含义,表示提交的数据告诉后端服务器发送过去的数据是什么含义,
value
属性:用户输入的内容,表示提交给后端服务器的数据内容
name
的值,如果不想将数据提交给服务器,就不要定义 name
value
的值(提交的树),而如果用户无法输入内容,或者选择内容,我们就需要自己定义 value
的值(提交的数据),如果没有 定义value
的值,默认是空字符串,Java接受到是内容是 String s = ""
,不是
submit
和 重置按钮reset
必须在 <form></form>
表单中才有效,在其他位置无效, button
普通按钮,无法提交数据给服务器,后期通过 JavaScript的操作使用,默认无功能,之后配合js添加功能
限于自身水平,其中存在的错误,希望大家给予指教,韩信点兵——多多益善,谢谢大家,后会有期,江湖再见 !!!
这篇文章将为大家详细讲解有关JavaScript常见面试题和答案,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
Java是一种OOP编程语言。 | |
它创建在虚拟机或浏览器中运行的应用程序。 | 代码在浏览器或node环境上运行。 |
需要编译Java代码。 | JS代码都是文本的形式。 |
JavaScript 是一种轻量级的解释型编程语言,具有面向对象的特性,允许各位在其他静态HTML页面中构建交互性。 该语言的通用核心已嵌入Netscape,Internet Explorer和其他Web浏览器中。
问题3: JS 支持哪些数据类型
JS 支持的数据类型:
● JS 是一种轻量级,解释性编程语言。
● 为了创建以网络为中心的应用程序而设计。
● 补充和集成了 Java
● 补充和集成了 HTML
是的,JS是一种区分大小写的语言。关键字、变量、函数名和任何其他标识符必须始终使用一致的大写字母进行使用。
问题6:JS 的优势是什么
● 更少的交互 - 在将页面发送到服务器之前,可以验证用户输入,节省了服务器流量,意味着服务器的负载更少
● 立即反馈 - 用户不需要等待页面重新加载来查看是否忘记输入某些内容。
● 增强交互 - 在界面中,当用户使用鼠标悬停或通过键盘激活它们时会做出响应。
● 丰富的接口 - 可以使用JS包含拖放组件和滑块等项,为网站提供丰富的界面。
问题7:如何用JS创建对象
JS贼支持对象概念,用如下方式创建即可:
问题8:如何用JS创建数组
JS 创建数组也很简单:
问题9:JS 中的命名函数是什么以及如何定义:
命名函数在定义后立即声明名称,可以使用function
关键字定义:
问题10:是否可以将匿名函数分配给变量并将其作为参数传递给另一个函数
可以。一个匿名函数可以分配给一个变量,它也可以作为参数传递给另一个函数。
问题11:JS中的参数对象是什么&如何获得传递给函数的参数类型
JS 变量arguments
表示传递给函数的参数。 使用typeof
运算符,可以获得传递给函数的参数类型。如下:
问题12:JS中变量的作用域是什么
变量的作用域是程序中定义它的区域,JS变量只有两个作用域:
● 全局变量 - 全局变量具有全局作用域,这意味着它在JS代码中的任何位置都可见。
● 局部变量 - 局部变量仅在定义它的函数中可见,函数参数始终是该函数的本地参数。
问题13:JS 中“this
”运算符的用途是什么?
this
关键字引用它所属的对象。 根据使用位置,它具有不同的值。 在方法中,这指的是所有者对象,而在函数中,这指的是全局对象。
回调函数是作为参数或选项传递给某个方法的普通JS函数。它是一个函数,在另一个函数完成执行后执行,因此称为回调。在JS中,函数是对象,因此,函数可以接受函数作为参数,并且可以由其他函数返回。
问题15:什么是闭包?举个例子
只要在某个内部作用域内访问在当前作用域之外定义的变量,就会创建闭包。 它允许你从内部函数访问外部函数的作用域。 在JS中,每次创建函数时都会创建闭包。 要使用闭包,只需在另一个函数内定义一个函数并暴露它。
问题16:列出一些内置方法及其返回的值。
它返回指定索引处的字符。 |
它连接两个或多个字符串。 |
它为数组中的每个元素调用一个函数。 |
它返回指定值第一次出现时调用字符串对象中的索引。 |
它从数组中删除最后一个元素并返回该元素。 |
它将一个或多个元素添加到数组的末尾,并返回数组的新长度。 |
问题17: JS中的变量命名约定是什么?
在JS中命名变量时要遵循以下规则:
break
或boolean
变量名无效。
(0-9)
开头。它们必须以字母或下划线开头。例如,123name
是一个无效的变量名,但123name
或name123
是一个有效的变量名。
Test
和test
是两个不同的变量。
问题18:TypeOf 运算符是如何工作的
typeof
运算符用于获取其操作数的数据类型。 操作数可以是文字或数据结构,例如变量,函数或对象。 它是一个一元运算符,放在它的单个操作数之前,可以是任何类型。 它的值是一个字符串,表示操作数的数据类型。
创建cookie
的最简单方法是为document.cookie
对象分配一个字符串值,如下所示:
● 可以使用split()
方法将字符串分解为键和值。
如果要删除cookie
以便后续尝试读取cookie
,则只需将过期日期设置为过去的时间。 咱们应该定义cookie
路径以确保删除正确的cookie
。 如果未指定路径,某些浏览器将不允许咱们删除cookie
。
● Attribute——提供关于元素的更多细节,如id、类型、值等。
问题23:列出在JS代码中访问HTML元素的不同方式
下面是在JS代码中访问 html 元素的方法列表:
● querySelector(): 此函数采用css样式选择器并返回第一个选定元素
问题24:JS代码在HTML文件中可以以多少种方式使用
//声明一个函数(整个文档都可以使用)问题25:在JS中定义变量的方法有哪些
在 JS 中声明变量有三种方式:
● var – var
语句用于声明一个变量,咱们可以选择初始化该变量的值。例子:var a =10;
变量声明在代码执行之前处理。
● const - 常量的值不能通过重新赋值来改变,并且不能重新声明。
● let - 语句声明一个块级作用域的本地变量,并且可选的将其初始化为一个值。
问题26:什么是类型化语言
类型化语言中,值与值关联,而不是与变量关联,它有两种类型:
number
, string
类型。
string
的变量只能包含一组字符,不能包含其他类型。
一般由服务器生成,可设置失效时间。如果在浏览器端生成Cookie,默认是关闭浏览器后失效 | 除非被清除,否则永久保存 | 仅在当前会话下有效,关闭页面或浏览器后被清除 |
每次都会携带在HTTP头中,如果使用cookie保存过多数据会带来性能问题 | 仅在客户端(即浏览器)中保存,不参与和服务器的通信 | |
需要程序员自己封装,源生的Cookie接口不友好 | 需要程序员自己封装,源生的Cookie接口不友好 源生接口可以接受,亦可再次封装来对Object和Array有更好的支持 |
==
: 两边值类型不同的时候,要先进行类型转换,再比较。
===
:不做类型转换,类型不同的一定不等。
一言以蔽之:==
先转换类型再比较,===
先判断类型,如果不是同一类型直接为false
。
undefined
是基本数据类型 表示未定义 缺少的意思。
null
是引用数据类型,是对象,表示空对象
undeclared
的变量是程序中不存在且未声明的变量。 如果程序尝试读取未声明变量的值,则会遇到运行时错误。undefined的变量是在程序中声明但未赋予任何值的变量,如果程序试图读取未定义变量的值,则返回undefined
的值。
问题 31: 列出一些JS框架
JS框架是用JavaScript编写的应用程序框架,它与控制流中的JS库不同,一些最常用的框架是:
innerHTML:也就是从对象的起始位置到终止位置的全部内容,包括Html标签。
innerText:从起始位置到终止位置的内容, 但它去除Html标签
问题 34:JS中的事件冒泡是什么
事件冒泡是HTML DOM API中事件传播的一种方式,当一个事件发生在另一个元素中的一个元素中,并且两个元素都注册了该事件的句柄时。通过冒泡,事件首先由最内部的元素捕获和处理,然后传播到外部元素。执行从该事件开始,并转到其父元素。然后执行传递给父元素,以此类推,直到body元素。
NaN
即非数值(Not a Number),NaN
属性用于引用特殊的非数字值,该属性指定的并不是不合法的数字。
提示: 请使用 isNaN()
来判断一个值是否是数字。原因是 NaN
与所有值都不相等,包括它自己。
问题 36:JS的原始/对象类型如何在函数中传递?
两者之间的一个区别是,原始数据类型是通过值传递的,对象是通过引用传递的。
● 值传递:意味着创建原始文件的副本。把它想象成一对双胞胎:他们出生的时候一模一样,但是双胞胎中的老大在战争中失去了一条腿,而老二却没有。
● 引用传递: 意味着创建原始文件的别名。当我妈妈叫沙雕的时候,虽然我的名字叫小智,但这并不是说我就突然就克隆了一个自己:我仍然是我,只是可以用不同名字来称呼我而已。
问题 37:如何在JS中将任意基的字符串转换为整数
由于2
和5
是整数,它们将以数字形式相加。因为3
是一个字符串,它将与 7
拼接,结果是73。
import
和export
有助于咱们编写模块化JS代码。 使用import
和export
,咱们可以将代码拆分为多个文件,如下:
问题40:JS中的“严格”模式是什么以及如何启用?
严格模式是在代码中引入更好的错误检查的一种方法。
● 当使用严格模式时,不能使用隐式声明的变量,或为只读属性赋值,或向不可扩展的对象添加属性。
● 可以通过在文件,程序或函数的开头添加“use strict”
来启用严格模式
提示框是允许用户通过提供文本框输入输入的框。 prompt()
方法显示一个对话框,提示访问者输入。 如果您希望用户在输入页面之前输入值,则通常会使用提示框。 弹出提示框时,用户必须在输入输入值后单击“确定”或“取消”才能继续。
问题42:下面代码的输出是什么?
f返回undefined,因为if
语句代码在运行时执行,而if
条件中的语句在运行时计算。
call
和apply
可以用来重新定义函数的执行环境,也就是this
的指向;call
和apply
都是为了改变某个函数运行时的context
,即上下文而存在的,换句话说,就是为了改变函数体内部this
的指向。
call()
调用一个对象的方法,用另一个对象替换当前对象,可以继承另外一个对象的属性,它的语法是:
说明:call
方法可以用来代替另一个对象调用一个方法,call
方法可以将一个函数的对象上下文从初始的上下文改变为obj
指定的新对象,如果没有提供obj
参数,那么Global
对象被用于obj
apply()
和call()
方法一样,只是参数列表不同,语法:
说明:如果argArray
不是一个有效数组或不是arguments
对象,那么将导致一个TypeError
,如果没有提供argArray
和obj
任何一个参数,那么Global
对象将用作obj。
问题44:如何在JS中清空数组
有许多方法可以用来清空数组:
上面的代码将把变量arrayList
设置为一个新的空数组。如果在其他任何地方都没有对原始数组arrayList
的引用,则建议这样做,因为它实际上会创建一个新的空数组。咱们应该小心使用这种清空数组的方法,因为如果你从另一个变量引用了这个数组,那么原始的引用数组将保持不变。
上面的代码将通过将其length
设置为0
来清除现有数组。这种清空数组的方式还会更新指向原始数组的所有引用变量。 因此,当你想要更新指向arrayList
的所有引用变量时,此方法很有用。
这处方法也行,当然这种清空数组的方法也将更新对原始数组的所有引用。
上面的实现也可以空数组,但通常不建议经常使用这种方式。
问题45:以下代码的输出什么
打印 0
。delete
操作符用于从对象中删除属性。这里x
不是一个对象,而是一个局部变量,删除操作符不影响局部变量。
问题46:以下代码的输出什么
undefined
。delete
操作符用于删除对象的属性。X
是一个具有foo
属性的对象,由于它是一个自调用函数,所以咱们将从对象X
中删除foo
属性。这样做之后,当咱们试图引用一个被删除的foo
属性时,结果是undefined
。
问题47:以下代码的输出什么
输出将是引用错误
。函数定义只能有一个引用变量作为其函数名。
问题49:为什么要将JS源文件的全部内容包装在一个函数中
这是一种越来越普遍的做法,被许多流行的JS库所采用。 这种技术围绕文件的整个内容创建一个闭包,最重要的是,它可以创建一个私有命名空间,从而有助于避免不同JS模块和库之间潜在的名称冲突。
该技术的另一个特性是允许为全局变量提供一个简单的别名,这在jQuery插件中经常使用。
问题50:JS中的转义字符是什么
JS转义字符使咱们能够在不破坏应用程序的情况下编写特殊字符。转义字符(\
)用于处理特殊字符,如单引号、双引号、撇号和&
号,在字符前放置反斜杠使其显示。
关于JavaScript常见面试题和答案就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。