JS 第一天总结

今天刚刚开始学JavaScript,语言基本上都是大同小异。学会了一门语言之后,学另一门语言就觉得比较好入门了。

JavaScript是由Web发展初期的网景(Netscape)公司创建,“JavaScript”是Sun Microsystem公司(现在Oracle)的注册商标,用来特指网景(现在Mozilla)对这门语言的实现。网景将这门语言作为标准提交给了ECMA---欧洲计算机制造协会---由于商标上的冲突,这们语言的标准版本改了一个丑陋的名字“ECMAScript”.同样由于商标的冲突,微软对这门语言的实现版本取了一个广为人知的名字“JScript”。实际上,几乎所有人都将这们语言叫做“JavaScript”。

在最近10年间,所有的Web浏览器都实现了第3版ECMAScript标准,我们也已经不必再考虑版本号了:语言标准已经很稳定了,并且被几乎所有的浏览器完整的实现了。最近ECMAScript第五版本定义了新的语言标准,有的浏览器已经开始实现它了。正如我们经常将JavaScript简写成JS一样,ECMAScript3和ECMAScript5有时也会简写成ES3和 ES5。

当我们提到这门语言本身时,通常所指的语言版本是ECMAScript3和ECMAScript5(ECMAScript4已经开发了数年,但由于太过庞大,从未发布正式版本),有时会看到JavaScript的版本号(比如JavaScript1.5或JavaScript1.8)。这些是Mozilla的版本号:版本1.5基本上就是ECMAScript3,后续版本包含了非标准的语言扩展。最后,JavaScript解释权或者“引擎”也有版本号,比如,Google将它的JavaScript解释权叫做V8。

上面是我看到一个比较好的介绍,粘贴过来的。

昨天晚上整理了一天博文之后,太晚了,就没有写总结,以后不能这样了。

昨天主要学习了 JS 的 变量数据类型数据类型转换变量的作用域运算符、以及流程控制语句

 一、变量

1、在js中可以用 var 来声明一个变量,可以出现在任何位置,变量声明后才可以使用,不过不声明也可以直接使用,只是这样不符合逻辑。

var a = 12;   //声明时,直接赋值

var b;

b = 34;       //先声明,后赋值,若不赋值,会提示 undefined

c = 56;       //不声明,直接赋值使用

上面的声明效果都是相同的。

2、在JS中出创建变量通常叫做声明变量。

3、重新声明了同一个变量,如果不赋值,则它的值不会变,例如:

var a = 10;

var a;

console.log(a);  // 会打印出 10

注意:

1、JS区分大小写,与Java相同。

2、JS支持两种注释,  //  和   /*  */

    二、数据类型

对于JavaScript的变量来说是没有类型的,变量的类型是由它的值所决定的。

例如:  var a = 10;  // 变量类型为  数值型 number

var b = 1.2;  //变量类型为 数值型 number

var c = true;  //变量类型为 布尔型 boolean

var d = "abc";  // 字符串类型  String

var e = ‘def‘;  //字符串类型  String

var f = null;   // null类型

var g = Object;  // Object类型

JavaScript的数据类型分为两类: 原始类型对象类型

原始类型:数字,字符串,布尔值,null,undefined。

对象类型:除了原始类型以外的类型都是对象类型,比如Array数组类型,Object类型。

1、JavaScript的数据类型主要有一下几种:

字符串 String

数值   number

布尔   boolean

数组   Array

对象   Object

空     null

未定义 undefined

            引用   reference

            完成   completion

后三种仅仅作为JavaScript运行时中间结果的数据类型,不能在代码中使用。

小技巧之:typeof()函数

可以使用typeof() 函数来查看变量的数据类型。

var a = 11;

console.log(typeof(a));   // 打印出 number

2、字符串类型 string

单引号 或者 双引号 括起来的字符序列。

var a = "hello";

var b = ‘world‘;

3、数值类型  number

包括 整数小数

var a = 12;

var b = 34.56;

特殊的值:

1、NaN (not a number) 非数字

parseInt()函数,不能解析指定的字符串时就返回这个值,如:

var a = "abc";

var b = parseInt(a);

console.log(b);  //打印出 NaN

可以用isNaN()函数,来判断一个是否不是一个数字。

var a = "abc";

console.log(isNaN(a));  //打印 true,说明a不是一个数字。

也可以用这个函数来判断是否是一个数字

var arr = [12,"hello"];

for( var i=0; i<arr.length; i++){

if( !isNaN(arr[i]) ){

console.log(arr[i]);

}

}

注意:

NaN与所有的值都不相等,包括它自己。

var a = NaN;

console.log(a==a);  //打印false

2、 infinity 和 -infinity

无穷大       负的无穷大

JavaScript中的算术运算在溢出或者被 0 整除时不会报错。

当运算结果超出JavaScript所能表示的数字上限结果为 infinity;同样,负数超过了JavaScript所能表示的负数最大范围时为 -infinity。

4、布尔类型  boolean

与Java使用方法相同,有两个值,true  or  false

5、数组类型 Array

这个类型以后再学,有一个专门的Array对象。那时候再细细学习。

三、数据类型的转换

1、到Boolean类型的转换  new Boolean(value)

undefined、null、number为0、String为空  这时候转化为 false

number为非0、String为非空、Object   这时候转化为 true

2、到数字类型的转换 new Number(value)

undefined  -----   NaN

null       -----   0

true       -----   1

false      -----   0

String  如果字符串时一串数字,则可以转化为数字,如果包含字母,则转化为NaN

3、到字符串类型的转化  new String(value)

undefined   ----  "undefined"

null        ----   "null"

Boolean     ----   "true"  "false"

Number      ----   具体的数字值, "123"

四、变量的作用域

一个变量的作用域是程序源代码定义这个变量的区域。 全局变量拥有全局作用域,在JavaScript中的任何地方都是可以定义的。然后函数内部声明的变量只在函数体内部定义,他们是局部变量,作用域有局限性,函数参数也是局部变量,他们只在函数体内有效。函数体内,局部变量的优先级高于全局变量。

var a = 12;

function f(){

var b = 34;

return b;

}

console.log(f());

尽管在声明全局变量的时候可以不用var,但是在声明局部变量的时候,必须用var!

JavaScript与Java的区别就是JavaScript中有函数作用域,Java中是块级作用域

function f(a){

var i = 10;

if(a<10){

var k = 10;

for( var j=0; j<10; j++ ){

var h = 12;

}

}

console.log(i);

console.log(a);

console.log(k);

console.log(j);

console.log(h);

}

f(5);        //打印结果10 5 10 10 12

JavaScript的函数作用域是指在函数内声明的所用变量在函数体内始终是可见的。有意思的是,这意味着变量在声明之前甚至可以用了。JavaScript的这种特征被非正式的称为声明提前,即JavaScript函数声明的所有变量都被提前至函数体的顶部。

附加:

1、  function f(){

vara = 1111;

b= 2222;

console.log(a);

}

f();

console.log(b);

上面例子,如果去掉了执行f() 函数,则console.log(b) 会报错。只有执行了f() 函数之后,全局变量b才会在程序中找到。

2、javaScript变量的作用于Java不同,在一个函数中定义了一个局部变量(包括在这个函数的嵌套函数内定义的),则在整个函数以及这个函数的嵌套函数(内部函数)。

五、运算符

和Java基本一样

多了几个:

1、恒等于  (严格比较,不会发生数据的转换)

2 == "2" //true

2 === "2" //false

2、逗号表达式

这个没怎么搞懂,试验了几次,总是报错,希望大神们,评论一下。

3、算数运算符

+  -  *  /  %  ++  --

4、赋值运算符

=  +=  -=  /=  *=  %=

5、用于字符串的 + 运算符

+ 运算符用于把文本值或者字符串变量连起来。

如: var a = "hello"; var b = "world";  var c = a + b; //c="helloworld";

6、如果把数字和字符串用 + 连接,则结果为字符串,数字与数字+操作,结果相加。

7、逻辑运算符 && & || |

与Java相同。

8、三目运算符  ? :

表达式 ? result1 : result2

如果表达式为true,则结果为result1,否则为result2

var a = 3>5? true:false;

console.log(a);  //打印 false

注意:JavaScript语句可以没有,但是为了便于阅读,一般用分号来作为一条语句的结束。

六、流程控制语句

if...

if...else...

if...else if...else...

switch...case...

for

for in

while

do...while

break

continue

上面的流程控制语句使用情况,与Java一样。

昨天晚上大体就学了这些。后面还会继续总结。

时间: 2024-10-10 00:38:16

JS 第一天总结的相关文章

JS第一周总结1

JS第一周总结 这周我学习了JS的基础部分,大致分为了: a.基础变量及数据类型 b.特殊数据类型 c.JS基础语句类型 d.BOM操作 e.DOM操作 ###基础变量###     1.首先给变量取名,取名规范有3点:         1.变量首字符必须是字母或者美元符号$.下划线_ 三者之一.         2.变量名字中不能包括特殊符号,比如空格.加减号等符号.         3.变量中不能包括JS中的关键字,比如var之类的. 2.取好名字之后,我们需要将这个变量定义出来,并且赋值给

js第一节-js的属性操作

js第一节-js的属性操作 今天我们第一节的内容主要跟大家聊聊js的属性操作,那么什么是属性呢?属性就是对于一个事物的描述,比如一个元素它的id,它的value值等.每个元素都有其自己本有的属性,也有我们给它定义的属性--自定义属性,总之这些都是描述其元素独有特性的.现在呢,我通过两个实例跟大家讲解一下什么是js的属性操作. 一.第一个实例是:图片的轮播图 效果图: 图1:加载的时候 图2:加载之后 HTML代码和CSS代码: JS代码: 上面用到了var oId = document.getE

01-THREE.JS第一个场景

THREE.JS第一个场景 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <script src="https://cdn.bootcss.com/three.js/r67/three.js"></script> <script src="https://cdn.b

Three.js 第一篇:绘制一个静态的3D球体

第一篇就画一个球体吧 首先我们知道Three.js其实是一个3D的JS引擎,其中的强大之处就在于这个JS框架并不是依托于JQUERY来写的.那么,我们在写这一篇绘制3D球体的文章的时候,应该注意哪些地方呢?下面我就来一一列举 1.场景. 场景是什么,说得简单一点,场景就是一个canvas ,我们就是要在Canvas上面实现3D效果的画面而已.场景和容器,相机是息息相关的,我们就拿拍戏来说,假如我们需要演一个古装剧的撕逼场景,那么,我们需要的道具其中之一就是一个相机. 2.容器 就是承载球体的DI

angular.js第一个项目 简单分页

<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1.0, minimum-scale=1.0, maximum

node.js 第一天

Node.js入门和企业级应用开发实战 第1天课堂笔记(本课程共8天) 目录 目录................................................................................................................................................................ 2 一.Node.js简介...................................

精通 Angular JS 第一天——Angular 之禅

简介 Angular JS是采用JavaScript语言编写的客户端MVC框架,它为业界带了重大的变化,包括对模板化的创新实现,以及数据的双向绑定,这些特性使得它强大而易用.它可以用来帮助开发者编写单页面应用,尤其适合编写有大量CRUD操作的,具有Ajax风格的富客户端应用.大多数开发者认为,与其它框架相比,AngularJS明显缩减了项目所需的代码量. 2012年6月,Angular JS正式发布1.0版,在各种客户端MVC框架中,属于后起之秀.AngularJS主页(http://www.a

JS第一课时笔记

一.JS有三种方式来表现 1.在标签里设置事件 <script>function myclick(){alert("hello word")} </script> <input type="button"value="我是一个按钮"onclick="myclick()" /> 效果: 2.在标签里设置id,这时我们需要先找到id再来执行事件 <script>onload=func

JS第一天

1.$("#buttonId").val("新的value") $("#buttonId").attr('value',"新的value")    //就是按钮上的文字改变了 2.$("#id").find('th').eq(1).html() 3..css({"width":"30px" , "color":"red",...

学习node.js第一天:node模块化

上一篇说完了如何创建一个简单的http服务,现在说说模块化. 在开发过程中,经常会说模块化这个词.那都表示什么含义呢?一般都有以下几层意思: 1.业务解耦. 业务耦合太多,后期不便于扩展和维护.这种情况常常出现于创业公司,当公司业务发展起来的时候,就会发现业务系统有严重的瓶颈,服务能力不足会制约公司的发展.所以需要把不相关的业务做成独立的系统. 2.微服务 在大的企业中经常会出现多种系统,每种系统又用到相同的功能.比喻说上传图片,如果每个开发小组都去造轮子,那就太浪费了.如果将图片上传做成单独的