本文是对上一篇 JavaScript简单入门 的一些细节补充。

一、全局变量和局部变量

在<script>标签内定义的变量是当前页面中的全局变量。即 <script>标签可以直接访问其他<script>标签定义的变量。而在函数体中定义的变量则为局部变量。如:

 <script type="text/javascript">
var x = 1;//全局变量
function show(x){//局部变量
x = ++x;
return x;
}
show(x);
document.write("x="+x);
</script>

所以输出的x = 1;而不是2。

二、常见对象

1、object对象:为js对象提供通用方法。如toString()方法:返回对象的字符串形式。

2、String对象:用于处理文本(字符串),String对象为字符串提供了许多方法。

①字符串是 JavaScript 的一种基本的数据类型。String 对象的 length 属性声明了该字符串中的字符数。String 类定义了大量操作字符串的方法,例如从字符串中提取字符或子串,或者检索字符或子串。需要注意的是,JavaScript 的字符串是不可变的(immutable),String 类定义的方法都不能改变字符串的内容。像 String.toUpperCase() 这样的方法,返回的是全新的字符串,而不是修改原始字符串。

②用户可以使用已有的方法来增加自定义方法,如:去掉字符串两端的空格:

 <script type="text/javascript">
function trim(str){
var start,end;
start = 0;
end = str.length-1; while(start <= end && str.charAt(start)==' '){
start++;
}
while(start <= end && str.charAt(end)==' '){
end--;
}
return str.substring(start,end+1);//包含头不包含尾。
}
</script>

③String的原型:String.prototype

使用原型属性可以向对象添加属性和方法。添加的新方法或新属性,那么字符串对象就都具有了这些新方法。如:

<script type="text/javascript">
//使用String原型添加自定义方法haha():
String.prototype.haha= function(){
var start,end;
start = 0;
end = str.length-1; while(start <= end && str.charAt(start)==' '){
start++;
}
while(start <= end && str.charAt(end)==' '){
end--;
}
return str.substring(start,end+1);//包含头不包含尾。
}
//然后字符串对象就可以调用haha()这个方法了。

3、Array对象:数组对象

方法如:concat():返回一个新数组,这个新数组是由两个或更多数组组合而成的。

4、date对象:日期对象

启用基本存储器并取得日期和时间。

5、Math对象:是一个固有对象,提供基本数学函数和常数。不用new创建对象可以直接调用。

6、Number对象:代表数值数据类型和提供数值常数的对象。

7、自定义对象

在js中可以使用function来模拟对象的创建过程。

方式1:

 <script type="text/javascript">
//自定义Person对象
function Person(){//相当于构造器 }
//通过描述直接进行对象的建立
var p = new Person();
var name = "张三";
var age = 20;
p.show = function(){
document.write(name+":"+age);
} p.show();
</script>

方式2:

 <script type="text/javascript">
//自定义Person对象
function Person(name,age){//相当于构造器
this.name = name;
this.age = age;
this.setName = function(name){
this.name = name;
}
this.setAge = function(age){
this.age = age;
}
this.show = function(){
document.write(this.name+":"+this.age);
}
} var p = new Person("张三",22);
p.setName("哈哈");
p.setAge(20);
p.show();
</script>

方式3:另一种封装方式:

 <script type="text/javascript">
var pp = {
//定义对象(逗号隔开)
"name":"李四",
"age":20,
"show":function(){
return this.name+":"+this.age;
}
} document.write(pp.show());
</script>

方式4:等等

三、特殊语句:with

with 语句通常用来缩短特定情形下必须写的代码量。在下面的例子中,请注意 Math 的重复使用:

 x = Math.cos(3 * Math.PI) + Math.sin(Math.LN10)
y = Math.tan(14 * Math.E)

当使用 with 语句时,代码变得更短且更易读:

 with (Math){
x = cos(3 * PI) + sin (LN10)
y = tan(14 * E)
}

JavaScript简单入门(补充篇)的更多相关文章

  1. 一篇文章带你了解网页框架——Vue简单入门

    一篇文章带你了解网页框架--Vue简单入门 这篇文章将会介绍我们前端入门级别的框架--Vue的简单使用 如果你以后想从事后端程序员,又想要稍微了解前端框架知识,那么这篇文章或许可以给你带来帮助 温馨提 ...

  2. BAT脚本编写教程简单入门篇

    BAT脚本编写教程简单入门篇 批处理文件最常用的几个命令: echo表示显示此命令后的字符 echo on  表示在此语句后所有运行的命令都显示命令行本身 echo off 表示在此语句后所有运行的命 ...

  3. Javascript之入门篇(一)

    上一篇学习了什么是JavaScript语言及其作用和特有的特点等,本篇将详细介绍JavaScript一些入门使用方式. 对于初学者来讲,由于JavaScript是嵌入到HTML页面里面的,首先创建一张 ...

  4. Linux入门基础篇

    Linux入门基础篇 Linux诞生 Linux发行版本说明 Linux官方网站 Linux内核官方网站 比较有名的Linux发行版 虚拟机(Virtual Machine),一个虚拟的系统,安装在系 ...

  5. Java的多线程 简单入门

    Java的多线程 简单入门 首先能够先搞清楚什么是程序.进程.线程,以及它们之间的关系: 定义: 一 程序仅仅是一组指令的有序集合.它是静态的 二 进程是具有一定独立功能的程序关于某个数据集合上的一次 ...

  6. 《IM开发新手入门一篇就够:从零开发移动端IM》

        登录 立即注册 TCP/IP详解 资讯 动态 社区 技术精选 首页   即时通讯网›专项技术区›IM开发新手入门一篇就够:从零开发移动端IM   帖子 打赏 分享 发表评论162     想开 ...

  7. 一篇文章带你了解NoSql数据库——Redis简单入门

    一篇文章带你了解NoSql数据库--Redis简单入门 Redis是一个基于内存的key-value结构数据库 我们会利用其内存存储速度快,读写性能高的特点去完成企业中的一些热门数据的储存信息 在本篇 ...

  8. 用IntelliJ IDEA创建Gradle项目简单入门

    Gradle和Maven一样,是Java用得最多的构建工具之一,在Maven之前,解决jar包引用的问题真是令人抓狂,有了Maven后日子就好过起来了,而现在又有了Gradle,Maven有的功能它都 ...

  9. [原创]MYSQL的简单入门

    MYSQL简单入门: 查询库名称:show databases; information_schema mysql test 2:创建库 create database 库名 DEFAULT CHAR ...

随机推荐

  1. spring中的自定义标签

    为了给系统提供可配置化支持,一般会用原生态的方式去解析定义好的XML文件,然后转化为配置对象.这种方式对于简单.单一的配置文件,或者是XML配置格式固定的配置文件,比较容易处理.但是对于一些配置非常复 ...

  2. .net程序员做的第一个安卓APP

    我从毕业之后一直做的是ASP.NET,从毕业到现在都已经五六个年头了.一个事物接触久了就会慢慢没有了新鲜感热情也褪去的差不多了,我又是对新事物比较感兴趣的,虽说Android早就不算什么新事物,当对于 ...

  3. mysql 双机热备注意事项

    上一篇文章已经介绍过    主从复制,   本文对主从复制只是简单描述,如对主从复制不清楚的,可以先看上一篇文章   主从复制  一:介绍 mysql版本:5.7.20 第一个主服服务器ip:192. ...

  4. POJ-1273-Drainage Ditches 朴素增广路

    Drainage Ditches Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 70588   Accepted: 2743 ...

  5. 【Flink】流-表概念

    title: Flink流-表概念 date: 2017-12-12 14:48:16 categories: technique tags: Flink Flink Streaming Dynami ...

  6. 深港澳大湾区第三次.NET技术交流会圆满成功

    2017年12月10日,一场以云.devops.微服务.容器是现在这个发展阶段的软件形态, 本次活动我们围绕这些话题介绍.NET生态下的发展本地社区活动,这次活动还得到如鹏网杨中科老师的大力支持开通网 ...

  7. 调参过程中的参数 学习率,权重衰减,冲量(learning_rate , weight_decay , momentum)

    无论是深度学习还是机器学习,大多情况下训练中都会遇到这几个参数,今天依据我自己的理解具体的总结一下,可能会存在错误,还请指正. learning_rate , weight_decay , momen ...

  8. So, you think you know JavaScript?

    Baranovskiy 参考:http://dmitry.baranovskiy.com/post/91403200   题目一:   if (!("a" in window)) ...

  9. 》》webpack打包成的文件

    /******/(function(modules) { // webpackBootstrap /******/ // The module cache /******/ var installed ...

  10. 最全面的JS表单验证

    两个日期比較 /*  用途:检查開始日期是否小于等于结束日期 输入:  s:字符串 開始日期 格式:2001-5-4 e:字符串 结束日期 格式:2002-5-4 返回:  假设通过開始日期小于等于结 ...