html--前端JavaScript基本内容
一、JavaScript 变量
在 JavaScript 中创建变量通常称为"声明"变量。
使用 var 关键词来声明变量。
注意:
1、变量必须以字母开头
2、变量也能以 $ 和 _ 符号开头(不过我们不推荐这么做)
3、变量名称对大小写敏感(y 和 Y 是不同的变量)
4、JavaScript 语句和 JavaScript 变量都对大小写敏感。
示例:
<script type="text/javascript"> // 全局变量
name = 'seven'; // 定义函数
function func(){
// 局部变量
var age = ; // 全局变量
gender = "男"
}
</script>
二、JavaScript 数据类型
JavaScript 中的数据类型分为原始类型和对象类型:
1、原始类型:
数字(Number)
JavaScript 只有一种数字类型。数字可以带小数点,也可以不带:
var x1=34.00; // 使用小数点来写
var x2=34; // 不使用小数点来写
Number对象相关属性
Number.MAX_VALUE 最大数值
Number.MIN_VALUE 最小数值
Number.NaN 特殊的非数字值
Number.NEGATIVE_INFINITY 负无穷大
Number.POSITIVE_INFINITY 正无穷大
Number.toExponential( ) 用指数计数法格式化数字
Number.toFixed( ) 采用定点计数法格式化数字
Number.toLocaleString( ) 把数字转换成本地格式的字符串
Number.toPrecision( ) 格式化数字的有效位
Number.toString( ) 将—个数字转换成字符串
Number.valueOf( ) 返回原始数值
字符串(String)
字符串可以是引号中的任意文本。您可以使用单引号或双引号:
var carname="Volvo XC60"; //双引号
var carname='Volvo XC60'; //单引号
String对象相关属性
String.charAt( ) 返回字符串中的第n个字符
String.charCodeAt( ) 返回字符串中的第n个字符的代码
String.concat( ) 连接字符串
String.fromCharCode( ) 从字符编码创建—个字符串
String.indexOf( ) 检索字符串
String.lastIndexOf( ) 从后向前检索一个字符串
String.length 字符串的长度
String.localeCompare( ) 用本地特定的顺序来比较两个字符串
String.match( ) 找到一个或多个正则表达式的匹配
String.replace( ) 替换一个与正则表达式匹配的子串
String.search( ) 检索与正则表达式相匹配的子串
String.slice( ) 抽取一个子串
String.split( ) 将字符串分割成字符串数组
String.substr( ) 抽取一个子串
String.substring( ) 返回字符串的一个子串
String.toLocaleLowerCase( ) 把字符串转换小写
String.toLocaleUpperCase( ) 将字符串转换成大写
String.toLowerCase( ) 将字符串转换成小写
String.toString( ) 返回字符串
String.toUpperCase( ) 将字符串转换成大写
String.valueOf( ) 返回字符串
布尔值(Boolean)
布尔(逻辑)只能有两个值:true 或 false。
var x=true;
var y=false;
Boolean对象相关属性
Boolean.toString( ) 将布尔值转换成字符串
Boolean.valueOf( ) Boolean对象的布尔值
2、对象类型:
数组(Array)
var cars=new Array();
cars[0]="Saab";
cars[1]="Volvo";
cars[2]="BMW";
或者
var cars=new Array("Saab","Volvo","BMW");
Array对象相关属性
Array.concat( ) 连接数组
Array.join( ) 将数组元素连接起来以构建一个字符串
Array.length 数组的大小
Array.pop( ) 删除并返回数组的最后一个元素
Array.push( ) 给数组添加元素
Array.reverse( ) 颠倒数组中元素的顺序
Array.shift( ) 将元素移出数组
Array.slice( ) 返回数组的一部分
Array.sort( ) 对数组元素进行排序
Array.splice( ) 插入、删除或替换数组的元素
Array.toLocaleString( ) 把数组转换成局部字符串
Array.toString( ) 将数组转换成一个字符串
Array.unshift( ) 在数组头部插入一个元素
对象(Object)
对象由花括号分隔。在括号内部,对象的属性以名称和值对的形式 (name : value) 来定义。属性由逗号分隔:
var person={firstname:"John", lastname:"Doe", id:5566};
或者
var person={
firstname : "John",
lastname : "Doe",
id : 5566
};
Object对象相关属性
Object.constructor 对象的构造函数
Object.hasOwnProperty( ) 检查属性是否被继承
Object.isPrototypeOf( ) 一个对象是否是另一个对象的原型
Object.propertyIsEnumerable( ) 是否可以通过for/in循环看到属性
Object.toLocaleString( ) 返回对象的本地字符串表示
Object.toString( ) 定义一个对象的字符串表示
Object.valueOf( ) 指定对象的原始值
空(null)
null是JavaScript语言的关键字,它表示一个特殊值,常用来描述“空值”。
未定义(Undefined)
undfined是一个特殊值,表示变量未定义。
三、JavaScript函数
3.1、函数语法:
函数就是包裹在花括号中的代码块,前面使用了关键词 function:
function 函数名(){
执行代码
}
3.2、函数的分类
// 普通函数
function func() {
return "yusheng_liang"
}
// 匿名函数
var func = function(arg){
return "yusheng_liang";
};
// 自执行函数
(function(arg){
console.log(arg);
})('')
3.3、调用带参数的函数
在调用函数时,您可以向其传递值,这些值被称为参数。这些参数可以在函数中使用。您可以发送任意多的参数,由逗号 (,) 分隔:
语法:
function myFunction(var1,var2){
代码
}
示例:
<button onclick="myFunction('Harry Potter','Wizard')">Try it</button> <script>
function myFunction(name,job)
{
alert("Welcome " + name + ", the " + job);
}
</script>
3.4、带有返回值的函数
有时,我们会希望函数将值返回调用它的地方。通过使用 return 语句就可以实现。在使用 return 语句时,函数会停止执行,并返回指定的值。
语法:
function myFunction(){
var x=5;
return x;
}
四、JavaScript 作用域
作用域是可访问变量的集合。在JavaScript中,能够定义全局作用域或者局部作用域。
4.1、全局作用域
变量在函数外定义,即为全局变量。全局变量有 全局作用域: 网页中所有脚本和函数均可使用。
var carName = " Volvo"; // 此处可调用 carName 变量 function myFunction() { // 函数内可调用 carName 变量 }
注意:全局变量在页面关闭后销毁。
4.2、局部作用域
变量在函数内声明,变量为局部作用域。局部变量:只能在函数内部访问。
// 此处不能调用 carName 变量 function myFunction() {
var carName = "Volvo"; // 函数内可调用 carName 变量 }
注意:
1、因为局部变量只作用于函数内,所以不同的函数可以使用相同名称的变量。
2、局部变量在函数开始执行时创建,函数执行完后局部变量会自动销毁。
五、条件语句
JavaScript中支持两个中条件语句,分别是:if 和 switch
5.1、If...else if...else 语句
使用 if....else if...else 语句来选择多个代码块之一来执行。
if (condition1)
{
当条件 为 true 时执行的代码
}
else if (condition2)
{
当条件 为 true 时执行的代码
}
else
{
当条件 和 条件 都不为 true 时执行的代码
}
5.2、switch 语句用于基于不同的条件来执行不同的动作。
switch(n)
{
case :
执行代码块
break;
case :
执行代码块
break;
default:
n 与 case 和 case 不同时执行的代码
}
六、循环语句
6.1、for - 循环代码块一定的次数。
for (语句 ; 语句 ; 语句 )
{
被执行的代码块
}
//语句 1 (代码块)开始前执行 starts. //语句 2 定义运行循环(代码块)的条件 //语句 3 在循环(代码块)已被执行之后执行
6.2、while 循环
while 循环会在指定条件为真时循环执行代码块。
while (条件)
{
需要执行的代码
}
6.3、do/while 循环
do/while 循环是 while 循环的变体。该循环会在检查条件是否为真之前执行一次代码块,然后如果条件为真的话,就会重复这个循环。
do
{
需要执行的代码
}
while (条件);
七、异常处理
7.1、JavaScript try 和 catch
try 语句允许我们定义在执行时进行错误测试的代码块。
catch 语句允许我们定义当 try 代码块发生错误时,所执行的代码块。
JavaScript 语句 try 和 catch 是成对出现的。
try {
//这段代码从上往下运行,其中任何一个语句抛出异常该代码块就结束运行
}
catch (e) {
// 如果try代码块中抛出了异常,catch代码块中的代码就会被执行。
//e是一个局部变量,用来指向Error对象或者其他抛出的对象
}
finally {
//无论try中代码是否有异常抛出(甚至是try代码块中有return语句),finally代码块中始终会被执行。
}
7.2、Throw 语句
throw 语句允许我们创建自定义错误。
正确的技术术语是:创建或抛出异常(exception)。
如果把 throw 与 try 和 catch 一起使用,那么您能够控制程序流,并生成自定义的错误消息。
throw exception
八、闭包
「闭包」,是指拥有多个变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式的一部分。
闭包是个函数,而它「记住了周围发生了什么」。表现为由「一个函数」体中定义了「另个函数」
由于作用域链只能从内向外找,默认外部无法获取函数内部变量。闭包,在外部获取函数内部的变量。
function f2(){
var arg= [,,,];
function f3(){
return arg;
}
return f3;
} ret = f2();
ret();
九、面向对象
function Foo (name,age) {
this.Name = name;
this.Age = age;
this.Func = function(arg){
return this.Name + arg;
}
} var obj = new Foo('yusheng_liang', );
var ret = obj.Func("很帅");
console.log(ret);
对于上述代码需要注意:
- Foo充当的构造函数
- this代指对象
- 创建对象时需要使用 new
上述代码中每个对象中均保存了一个相同的Func函数,从而浪费内存。使用原型和可以解决该问题:
function Foo (name,age) {
this.Name = name;
this.Age = age;
}
Foo.prototype = {
GetInfo: function(){
return this.Name + this.Age
},
Func : function(arg){
return this.Name + arg;
}
}
html--前端JavaScript基本内容的更多相关文章
- 实例演示 kino.razor (前端 Javascript 模板工具,Razor 风格)的使用
前言 对于习惯了 ASP.NET MVC Razor 模板引擎的人来说,比如我,一直在寻找前端 Javascript 端的 Razor 模板工具.这之前,我也了解到很多Javascript 端的模板工 ...
- Web前端-JavaScript基础教程上
Web前端-JavaScript基础教程 将放入菜单栏中,便于阅读! JavaScript是web前端开发的编程语言,大多数网站都使用到了JavaScript,所以我们要进行学习,JavaScript ...
- 前端JavaScript(3)-关于DOM操作的相关案例,JS中的面向对象、定时器、BOM、位置信息
小例子: 京东购物车 京东购物车效果: 实现原理: 用2个盒子,就可以完整效果. 先让上面的小盒子向下移动1px,此时就出现了压盖效果.小盒子设置z-index压盖大盒子,将小盒子的下边框去掉,就可以 ...
- Web前端-JavaScript基础教程下
Web前端-JavaScript基础教程下 <script>有6个属性: async对外部脚本有效,可以用来异步操作,下载东西,不妨碍其他操作. charset为src属性指定字符集. d ...
- 前端 JavaScript 复制粘贴的奥义——Clipboard 对象概述
前言 作为一名资深搬砖工,你要问我用得最熟练的技能是什么,那我敢肯定且自豪的告诉你:是 Ctrl+C !是 Ctrl+V! 不信?你来看看我键盘上的 Ctrl.C 和 V 键,那油光发亮的包浆程度,不 ...
- 详解升讯威在线客服系统前端 JavaScript 脚本加密技术(1)
我在业余时间开发维护了一款免费开源的升讯威在线客服系统,也收获了许多用户.对我来说,只要能获得用户的认可,就是我最大的动力. 这段时间有几个技术小伙伴问了我一个有意思的问题:"你的前端脚本是 ...
- 前端JavaScript规范
前端JavaScript规范 http://www.imooc.com/article/1402 http://greengerong.com/blog/2015/05/09/qian-duan-ja ...
- 在C#后端处理一些结果然传给前端Javascript或是jQuery
在C#后端处理一些结果然传给前端Javascript或是jQuery,以前Insus.NET有做过一个例子<把CS值传给JS使用 >http://www.cnblogs.com/insus ...
- 总结JavaScript输出内容(document.write)
document.write() 可用于直接向 HTML 输出流写内容.简单的说就是直接在网页中输出内容. 第一种:输出内容用“”括起,直接输出""号内的内容.<script ...
- API例子:用Java/JavaScript下载内容提取器
1,引言 本文讲解怎样用Java和JavaScript使用 GooSeeker API 接口下载内容提取器,这是一个示例程序.什么是内容提取器?为什么用这种方式?源自Python即时网络爬虫开源项目: ...
随机推荐
- 第17课 lambda表达式
一. lambda表达式 (一)语法定义:[capture](paramters) mutable ->returnType{statement} 1.[capture]:捕获列表 (1)lam ...
- vue表单验证不通过,依然能执行点击事件里面的代码?
遇到的问题:表单提交的时候,写了rules,明明验证不通过依然执行了点击事件里面的代码. 这个验证有什么用? 后来 我看elementUI组件才发现,我漏写了几行代码. methods里面这样写 完美 ...
- Spring Security简介与入门Demo
1:Spring Security简介 Spring Security是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架.它提供了一组可以在Spring应用上下文中配 ...
- Spring Boot入门及第一个案例
一:SpringBoot是什么 springboot是对spring的缺点进行改善和优化,约定大于配置 开箱即用 没有代码生成 也无需xml 文件配置 可以修改属性值来满足需求 1) Spri ...
- 【CTS2019】珍珠(生成函数)
[CTS2019]珍珠(生成函数) 题面 LOJ 洛谷 题解 lun题可海星. 首先一个大暴力\(sb\)的\(dp\)是设\(f[i][S]\)表示当前考虑完了前\(i\)个珍珠,\(S\)集合中这 ...
- Git 核心概念
原文链接 Git的核心概念 聪聪的个人网站 本文不是Git使用教学篇,而是偏向理论方面,旨在更加深刻的理解Git,这样才能更好的使用它,让工具成为我们得力的助手. 版本控制系统 Git 是目前世界上最 ...
- [Leetcode] 5279. Subtract the Product and Sum of Digits of an Integer
class Solution { public int subtractProductAndSum(int n) { int productResult = 1; int sumResult = 0; ...
- laravel在使用Composer安装插件时要求输入授权用户名密码解决办法
在使用laravel-china源时需要输入密码,坑,换源, 先换腾讯的不行,最后试一下阿里云的可以: composer config -g repo.packagist composer https ...
- Java集合Map基本方法
jdk1.7 api中的方法摘要: 参考java集合大全图:https://www.cnblogs.com/xkzhangsanx/p/10889114.html Map为所有Map子类的接口.
- java虚拟机JVM基础
(1)内存模型以及分区,需要详细到每个区放什么. 堆:Java虚拟机管理内存中最大的一块,线程共享区域.所有对象实例和数组都在堆上分配内存空间. 栈:线程私有,每个线程都会创建一个虚拟机栈,生命周期与 ...