javascript是一种在网络广泛应用的脚本语言,虽然名字与java相近,但其实两者并没有直接的关系,脚本语言是一种为了便于操作和拓展功能而开发出来的解释性语言,不同于传统的编程语言,脚本语言不需要编译即可通过解释器运行,各大浏览器中均内置javascript解释器。

html中提供了script标签来标明需要使用javascript解释器的代码块,script标签可以放在html文件的任意位置(为了保证js代码可以引用指定的html内容,通常放在html文档的最后,及/body标签和/html标签间),在script标签内,可以通过src属性指定需要引用的javascript文件的路径,需要注意的是,如果在标签上使用了src属性引入了js文件,script标签内的代码将不会被解释。示例代码如下:

<script type="text/javascript"> alert(1); </script>

javascript由三部分组成,1.由欧洲计算机制造商协会制定的标准:ECMAscript 可以将javascript看做是ECMAscript的实现和功能扩展,ECMAscript为javascript制定了作为标准的语法和基本对象。2.文档对象模型(DOM),用于描述处理网页内容的方法和接口。3.浏览器对象模型(BOM),用于描述与浏览器进行交互的方法和接口。

javascript是一种弱类型语言,具有相当的交互性,安全性(无法直接访问硬盘),与跨平台性,javascript只有5种数据类型,并只能用var关键字进行声明(可以省略),这5种数据类型分别为1.String2.Boolean3.Number4.Undefined5.Null 如果一个变量声明后没有被赋值,这个变量就被解释为Undefined类型,而Number类型用于存储数据,但是并不区分是小数还是整数,所以/运算符在js中总是表示为除法而不是取整。可以通过typeof运算符判断指定变量的数据类型,通过instanceof运算符判断指定变量的引用类型。

js的数组也使用var关键字进行数组声明(可省略),由于js的弱类型特性,js的数组中可以存放不同类型的数据,js的数组有两种声明方式,一种是通过直接赋值(如var array=[4,5,6]),另一种是通过new一个Array类型的对象并传入数组的值或长度(如var array=new Array(3)或var array=new Array(3,4,5))。

js的函数需要用到function关键字进行声明,同样,由于js的弱类型特性,js的函数不需要标明返回值类型,形参列表也不需要用var关键字声明类型,只需标明形参名称就可以了。类似数组的概念,js中可以通过函数名传递该函数的引用。

为了避免频繁地修改函数体的内容以改变功能,js提供了动态函数的概念,可以将函数体作为参数动态地创建函数如var add = new Function("x,y","var sum;sum=x*y;return sum;");方便起见,还可以通过传递引用的方式创建匿名函数,如var add = function (x,y){return x+y;};

除了在函数体内创建的变量,script标签中的变量均为全局变量,在整个页面范围内都有效。

初探javascript的更多相关文章

  1. 初探JavaScript(四)——作用域链和声明提前

    前言:最近恰逢毕业季,千千万万的学生党开始步入社会,告别象牙塔似的学校生活.往往在人生的各个拐点的时候,情感丰富,感触颇深,各种对过去的美好的总结,对未来的展望.与此同时,也让诸多的老“园”工看完这些 ...

  2. 初探JavaScript(三)——JS带我"碰壁"带我飞

    已经写了两篇关于小白的JavaScript之行,不可否认,每一种语言都有其精华与糟粕之处,来不及细细体味其精华奥妙,也没法对其评头论足,只能先了解,后深入.到目前为止已经看完<JavaScrip ...

  3. 初探JavaScript(二)——JS如何动态操控HTML

    除去五一三天,我已经和<JavaScript Dom编程艺术>磨合了六天,第一印象很好.慢慢的,我发现这是一块排骨,除了肉还有骨头.遇到不解的地方就会多看几遍,实在不懂的先跳过,毕竟,初次 ...

  4. 初探JavaScript(一)——也谈元素节点、属性节点、文本节点

    Javascript大行其道的时候,怎么能少了我来凑凑热闹^_^ 基本上自己对于js的知识储备很少,先前有用过JQuery实现一些简单功能,要论起JS的前世今生,来龙去脉,我就一小白.抱起一本< ...

  5. 【JavaScript从入门到精通】第四课初探JavaScript魅力-04

    第四课初探JavaScript魅力-04 style与className 之前我们已经讲过,style用于在JS里控制元素的样式,通过style可以选中元素的各种css属性.此外,我们也提到过,JS用 ...

  6. 【JavaScript从入门到精通】第三课 初探JavaScript魅力-03

    第三课 初探JavaScript魅力-03 函数传参 上节课的时候我们已经讲了什么是函数,实际上,函数在功能上就类似于css的class一样,将一段代码包裹起来使用.为了让函数的功能更加的丰富和实用, ...

  7. 【JavaScript从入门到精通】第二课 初探JavaScript魅力-02

    第二课 初探JavaScript魅力-02 变量 说起变量,我们不得不提起我们有一部比较古老的电视剧叫<包青天>.包青天有一把非常厉害的宝剑叫“尚方宝剑”,见到尚方宝剑有如见到皇帝.某种程 ...

  8. 【JavaScript从入门到精通】第一课 初探JavaScript魅力-01

    第一课 初探JavaScript魅力-01 JavaScript是什么 如今我们打开一个大型的网站,都会有很多JS效果的功能和应用.对于学过CSS+HTML的同学,即使是像淘宝那样的网站,用一两天时间 ...

  9. 01 - 初探JavaScript魅力

    网页特效原理 用JavaScript修改样式 编写JS的流程 布局:HTML+CSS 属性:确定要修改哪些属性 事件:确定用户做哪些操作(产品设计) 编写JS:在事件中,用JS来修改页面元素的样式 鼠 ...

随机推荐

  1. C#发送邮件异常:根据验证过程,远程证书无效

    今天在做发送邮件功能时,开始用qq邮箱和163邮箱都可以正常发送,后再改用我公司的邮箱和smtp时竟然报错了. 异常提示-----"根据验证过程,远程证书无效",后来通过查询资料解 ...

  2. asp.net 文件下载(txt,rar,pdf,word,excel,ppt)

    aspx 文件下载说起来一点都不难,但是在做的过程中还是遇到了一些小小的问题,就是因为这些小小的问题,导致解决起来实在是太难了,其中一个就是Response.End();导致下载文件出现线程终止的情况 ...

  3. 利用chrome插件批量读取浏览器页面内容并写入数据库

    试想一下,如果每天要收集100页网页数据甚至更多.如果采用人工收集会吐血,用程序去收集也就成为一个不二的选择.首先肯定会想到说用java.php.C#等高级语言,但这偏偏又有个登陆和验证码,搞到无所适 ...

  4. Mybatis批量操作

    首先,mysql需要数据库连接配置&allowMultiQueries=true jdbc:mysql://127.0.0.1:3306/mybank?useUnicode=true& ...

  5. 在Ubuntu 14.04安装和使用Docker

    Docker是一个开源软件,它可以把一个Linux应用和它所依赖的一切(比如配置文件)都封装到一个容器.然而,Docker与虚拟机不同,它使用了沙箱机制,Docker容器不运行操作系统,它共享主机上的 ...

  6. 定义类型uint8_t,uint32_t

    定义的类型uint8_t,uint32_t能更明显的显示所占字节数.uint8_t表示占1个字节(1 字节=8 bit), uint32_t表示占4个字节((4 字节=32 bit). #includ ...

  7. PHP修改表格(增删改)

    要求: 1.熟练shi用  post 和  get  传值        2. php嵌套在HTML中        3.熟练:if 语句(其他语句)的使用 --------------------- ...

  8. java实现记住密码功能(利用cookie)

    <br> <input type="text" id="userName" name="userName" value=& ...

  9. A Complete List of .NET Open Source Developer Projects

    http://scottge.net/2015/07/08/a-complete-list-of-net-open-source-developer-projects/?utm_source=tuic ...

  10. Mac Pro 8G 安装MyEclipse提示虚拟内存为0 安装失败

    看的一个大神的博客,一句话解决了.哈哈   百度一下很多人都说开多一点程序,让程序占满内存,使其虚拟内存使用就能通过这一步骤,但这里有个更好一点的方案 通过执行: memory_pressure -l ...