Node.js + MongoDB + AngularJS - 2 Javascript基础
来源:互联网 发布:unity3d怎么播放动画 编辑:程序博客网 时间:2024/05/16 13:59
学习node.js时,作为对javascript的复习。不作为详细的基础讲解,只是简单的大体上过一遍。
1. 定义变量
使用 var 关键字
var myData ;var myString = 'Some Text' ;var newString = myString + ' some More Text' ;
命名规则:必须以字母、$或_开头,并且不能包含空格。
区分大小写。
2. 了解Javascript数据类型
字符串(String)
var myString = 'Some Text' ;var anotherString = 'Some More Text' ;
数值(Number)
var myInteger = 1 ;var cost = 1.33 ;
数组(Array)
var arr = { 'one', 'two', 'three' } ;var first = arr[ 0 ] ;
对象字面量(Object)
var obj = { 'name': 'Brad', 'occupation': 'Hacker', 'age': 'Unknow' } ;var name = obj.name ;
空(Null)
var newVar = null ;
注意:Javascript是一种无类型的语言。在脚本中并不需要指定一个变量的数据类型。解释器会自动推算出某个变量的正确数据类型。此外,可以将不同类型的值赋给一种类型的变量。
3. 使用运算符
3.1. 算数运算符
注意:也可以使用+运算符来连接字符串或将字符串和数值加在一起。这可以快速连接字符串,以及将数值数据添加到输出字符串。
3.2 赋值运算符
3.3. 运用比较和条件运算符
- 比较运算符
>=
大于或等于 < 小于 <= 小于或等于- 逻辑运算符
- if语句
if( x == 5 ) { do_something() ;}if( x == 5 ) { do_something() ;} else { do_something_else() ;}if( x < 5 ) { do_something() ;} else if( x < 10 ) { do_something_else() ;} else { do_nothing() ;}
- switch语句
switch( 表达式 ) {case value1: <要执行的代码> break ;case value2: <要执行的代码> break ;default: <如果不是value1也不是value2要执行的代码> }
注意:**switch语句完全计算表达式,得到一个值,这个值可以是字符串、数值、布尔值,甚至是一个对象。
每个case语句都在最后包括break语句,表示从switch语句中断。**
4. 循环
4.1. while
var i = 1 ;while( i < 5 ) { console.log( 'Iteration ' + i ) ; i++ ;}
4.2. do/while
var i = 0;do { console.log( 'Iteration ' + i ) ; i++ ;} while( i < 5 ) ;
4.3. for
for( 赋值; 条件; 更新 ) { <要执行的代码>}
4.4. for/in
var days = [ 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday' ] ;for( var idx in days ) { console.log( 'It's ' + days[ idx ] + '<br>' ) ;}
4.5. 中断循环
- break
var days = [ 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday' ] ;for( var idx in days ) { if( days[ idx ] == 'Wednesday' ) break ; console.log( 'It's ' + days[ idx ] + '<br>' ) ;}
- continue
var days = [ 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday' ] ;for( var idx in days ) { if( days[ idx ] == 'Wednesday' ) continue ; console.log( 'It's ' + days[ idx ] + '<br>' ) ;}
5. 创建函数
为了代码重用
5.1. 定义函数
关键字:function
function myFunction() { console.log( 'Hello World' ) ;}myFunction() ;
5.2. 传递变量给函数
function greeting( name, city ) { console.log( 'Hello ' + name ) ; console.log( '. How is the weather in ' + city ) ;}var name = 'Brad' ;greeting( name, 'Florence' ) ;
5.3. 函数返回值
function formatGreeting( name, city ) { var retStr = '' ; retStr += 'Hello <b>' + name + '/n' ; retStr += 'Welcome to ' + city + '!' ; return retStr ;}var greeting = formatGreeting( 'Brad', 'Rome' ) ;console.log( greeting ) ;
5.4. 匿名函数
console.log( doCalc( 5, 10, function( n1, n2 ) { return n1 + n2 ;} ) ) ;
匿名函数的好处:不需要正式定义不在代码的其他任何地方使用的东西。因此,匿名函数使javascript代码更简洁已读。
6. 变量作用域
var myVar = 1 ;function writeIt() { var myVar = 2; console.log( 'Variable = ' + myVar ) ; writeMore() ;}function writeMore() { console.log( 'Variable = ' + myVar ) ;}writeIt() ;
7. Javascript对象
使用对象而不只是一个函数集合,是编写清洁、高效、可重复使用的Javascript代码的关键。
7.1. 使用对象语法
一个对象实际上只是一个容器,它将多个值和函数组合在一起。对象的值称为属性,对象的函数称为方法。
关键字:new
var x = new Number( '5' ) ;
对象语法:使用对象名称,然后是一个点,然后是属性或方法的名称。
var s = myObj.name ;myObj.name = 'new Name' ;var name = myObj.getName() ;myObj.getName = function() { return this.name ;}
创建对象
var obj = { name: 'My Object', value: 7, getValue: function() { return this.value; }}
还可以通过使用 object propertyName 的语法来访问Javascript对象的成员。
var propName = 'User Name' ;var val1 = myObj[ propName ] ;var val2 = myObj[ 'Other Name' ] ;
7.2. 创建自定义对象
- 一:
var user = new Object() ;user.first = 'Brad' ;user.last = 'DayLey' ;getName = function() { return this.first + ' ' + this.last ;}
- 二:
var user = { first: 'Brad', last: 'Dayley', getName: function() { return this.first + ' ' + this.last ; }}
- 三:
function User( first, last ) { this.first = first ; this.last = last ; this.getName = function() { return this.first + ' ' + this.last ; }}var user = new User( 'Brad', 'Dayley' ) ;
7.3. 使用原型对象模式
在原型中定义的函数只在Javascript加载时被创建一次,而不是每创建一个新的对象时都被创建。
function UserP( first, last ) { this.first = first ; this.last = last ;}UserP.prototype = { getFullName: function() { return this.first + ' ' + this.last ; }}
8. 字符串
String对象是迄今为止在Javascript中最常用的对象。在定义一个字符串数据类型的变量的时候,Javascript就自动为你创建一个String对象。
- String对象的转义码
- String对象的方法
8.1. 合并字符串
使用 + 操作或使用第一个字符串上的concat()函数将多个字符串合并
var word1 = 'Today ' ;var word2 = 'is ' ;var word3 = 'tomorrows\' ' ;var word4 = 'yesterday.' ;var sentence1 = word1 + word2 + word3 + word4 ;var sentence2 = word1.concat( word2, word3, word4 ) ;
8.2. 在字符串中搜索子串
var myStr = 'I think, therefore I am.' ;if( myStr.indexOf( 'think' ) != -1 ) { console.log( myStr ) ;}
8.3. 在一个字符串中替换单词
var username = 'Brad' ;var output = '<username> place enter your password: ' ;output.replace( '<username>', username ) ;
8.4. 将字符串分割为数组
var t = '12:10:36' ;var tArr = t.split( ':' ) ;var hour = tarr[ 0 ] ;var minute = tArr[ 1 ] ;var sencond = tArr[ 2 ] ;
9. 数组
9.1. 合并数组
var arr1 = [ 1, 2, 3 ] ;var arr2 = [ 'three', 'four', 'five' ] ;var arr3 = arr1 + arr2 ;var arr4 = arr1.concat( arr2 ) ;
9.2. 遍历数组
var week = [ 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday' ] ;for( var i = 0; i < week.length, i++ ) { console.log( '<li>' + week[ i ] + '</li>' ) ;}for( dayIndex in week ) { console.log( '<li>' + week[ dayIndex ] + '</li>' ) ;}
9.3. 数据转换为字符串
var timeArr = [ 12, 10, 36 ] ;var timeStr = timeArr.join( ':' ) ;
9.4. 检查数组是否包含摸个条目
function message( day ) { var week = [ 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday' ] ; if( week.indexOf( day ) != -1 ) { console.log( 'Happy ' + day ) ; }}
10. 错误处理
关键字: try/catch/finally
10.1. try/catch
try{ var x = badVarName ;} catch( err ) { console.log( err.name + ': "' + err.message + ' " occurred when assigning x.' ) ;}
10.2. 抛出自己的错误
function sqrRoot( x ) { try { if( x == '' ) throw { message: "can't Square Root Nothing" } ; if( isNaN(x) ) throw { message: "can't Square Root Strings" } ; if( x < 0 ) throw { message: "Sorry No Imagination" } ; return "sqrt( " + x + " )" + Math.sqrt( x ) ; } catch ( err ) { return err.message ; }}
10.3. finally
function testTryCatch( value ) { try { if( value < 0 ) { throw 'too small' ; } else if( value > 10 ) { throw 'too big' ; } your code here ; } catch ( err ) { console.log( 'The number was ' + err ) ; } finally { console.log( 'This is always written' ) ; }}
- Node.js + MongoDB + AngularJS - 2 Javascript基础
- AngularJS+Satellizer+Node.js+MongoDB
- Node.js + MongoDB + AngularJS - 1
- Node.js + MongoDB + AngularJS - 6 访问文件系统-2
- Node.js+MongoDB+AngularJS Web开发
- 学习Node.js+MongoDB+AngularJS(1)
- Node.js + MongoDB + AngularJS - 5 在Node.js中处理数据I0-2
- node.js + MongoDB + AngularJS - 3 开始使用Node.js
- node.js + MongoDB + AngularJS - 4 事件、监听器、定时器、回调
- Node.js + MongoDB + AngularJS - 6 访问文件系统-1
- node.js+express+mongodb基础..持续更新
- Node.js + MongoDB + AngularJS - 5 在Node.js中处理数据I0-1
- 有 JavaScript 基础,怎么学习 Node.js
- node.js/javascript 语法基础笔记
- JavaScript基础之Node.js的模块
- JavaScript基础之Node.js基本模块
- JavaScript基础之Node.js与fs
- JavaScript基础之Node.js与stream
- C# 反射功能
- ZJU oj 2970 Faster, Higher, Stronger(水题)
- 【学习 OpenCV】—— 将一个3通道的像素点转换到新的彩色空间
- 算法分析-最大子序列
- 归并排序的分治算法与时间复杂度分析
- Node.js + MongoDB + AngularJS - 2 Javascript基础
- 核心动画介绍
- platform平台总线---led实验实例
- 测试私有继承的情况下,private virtual members 的访问权限
- Kafka consumer API简介
- caffe学习笔记6--训练自己的数据集
- [Unity优化] Unity CPU性能优化
- 用jQuery写的简单两级树形菜单
- NASA研发首架登陆火星的人造飞行器,高效翼型飞翼实验-(普朗特-D3)试飞。