2.2.1 js基本语法

  • js变量定义

js语法与C/C++/java等C-Style类型语言语法相近,如基本数据类型:

1. var b=true;//定义布尔变量b,并赋值为true,js注释与C/C++完全相同,此处不详述
2. var i=0;//定义型变量i,并赋值为0
3. var j=-1000;//定义整型变量j,并赋值为-1000
4. var k=0.123;//定义浮点数k,并赋值为0.123
5. var s ="Hello World";//定义字符串变量s,并幅值为"Hello World"
6. var obj ={Name:"Soong",Age:28};//定义对象obj,设置其属性:Name为“Soong”,Age为28

js不需要像C语言一样显式的指定具体类型,如int,double等,统一使用var关键字声明变量。

  • js四则运算与C语言相同,如:
1. i +=10;//等同于i=i+10
2. i++;//等同于i=i+1
3. j /=100;//等同于j=j/100
  • js条件转移与循环语句与C语言类似,如下:
1. var num =100;//定义整数
2. if((num%2)==1){ //求num的余数,“%”为求余数运算符,与C语言一样
3.    console.log("奇数");// console.log()为FireFox浏览器内置的输出函数,类似于C语言中printf
4. }else{
5.    console.log("偶数");
6. }
  • js的for循环求0到9之和:
1. var sum =0;
2. for(var i =0;i<=9;i++){
3.    sum+=i;
4. }
  • js的do-while循环求0到9之和:
1. var sum =0, num =1;
2. do{
3.    sum+=num++;
4. }while(num<10)

循环语句中continue和break语句的用法也与C/C++完全相同。

怎么样?是不是基本和C语言一样!

  • js数组与C++标准库(STL)中vector类类似,用法如下:
1. var v= new Array(5) ;//定义一个长度为5的数组
2. v[0]=1;v[3]=4;
3. var v2=[] ;//定义数组v2与v2=new Array();作用完全相同
4. console.log(v.length)//输出数组v的长度
5. var arr= new Array("one","two","three", 3 , 4 ,5);
6. arr.push(1.2, 2.3 , 3.4);//使用push函数从尾部添加数据
7. arr.pop();//从尾部删除一个数据
  • js函数定义

js中定义和使用求和函数:

1. functionAddFun(a,b){
2.  var res;
3.    res= a + b;
4.  return res;
5. }
6.  
7. var c=AddFun(1, 2);
  • js内置函数

与C语言不同需要注意的是:部分浏览器不支持js函数使用默认参数,如IE和EDGE。js内置了一些数学函数,如指数运算、开方、三角函数等,类似与C语言中math.h中的数学函数,js内置数学函数有:

1. var rnd=Math.random();//使用 random()返回 0到1之间的随机数
2. var max=Math.max(2,5,8,1);//使用max()返回两个给定的数中的最大值
3. var pi=Math.PI;//Math.PI表示圆周率
4. var sqr=Math.sqrt(5);//求5的平方根
5. var i=Math.floor(3.4);//求不超过3.4的最大整数
6. var e=Math.exp(2);//指数函数
7. var s=Math.sin(Math.PI/6);//求30度角的正弦值
  • 类的概念 早期js中没有类的概念;到ES6标准中加入了js类的概念。如下定义了三个类:水管类、阀门类、水位计类。
1. class Tube{//定义了水管类
2.  constructor(flux) {//构造函数,初始化成员变量(这里是流量flux)
3.  this.flux = flux;//成员变量(这里是流量flux)
4.    }
5. }
6.  
7. class Valve{//定义了阀门类
8.  constructor(valveOpenning) {//构造函数,初始化成员变量(这里是阀门开度)
9.  this.setValveOpenning(valveOpenning);//调用成员函数
10.     }
11.     setValveOpenning(value){//成员函数
12.  if(value>1) value=1;
13.  if(value<0) value=0;
14.  this.valveOpenning = value;
15.     }
16. }
17.  
18. class LevelSensor{//定义了水位计类
19.  static getLevel(pool){//静态函数:返回水位值
20.  return pool.actualLevel;
21.    }
22. }

没看懂吧?我们说说什么是类?类可以理解为自定义数据类型,例如我有一个height变量可以表示身高,一个weight变量可以表示体重。那有没有一个数据类型能够同时包含两个或者多个变量呢?类就可以办到,通过关键词来定义类,如我们定义了一个Person类,包含了height和weight两个变量:

1. class Person{
2.  constructor(weight,height) {
3.  this.weight = weight;
4.  this.height = height;
5.    }
6. }

其中关键字constructor是什么意思呢?constructor是构造函数,用于初始化成员变量weight和height的。定义一个变量xiaoming,体重80kg,身高1.75m,如下:

1. class Person{
2.  constructor(weight,height) {
3.  this.weight = weight;
4.  this.height = height;
5.    }
6. }
7.  
8. xiaoming=new Person(80,1.75);

使用关键字new 和类名(Person)定义新的变量,并给出初始化参数(体重和身高)。如何获取xiaoming的BMI(体重除以身高的平方)值呢?我们需要定义一个成员函数,如下:

1. class Person{
2.  constructor(weight,height) {
3.  this.weight = weight;
4.  this.height = height;
5.    }
6.    getBMI(){//获取BMI值
7.  return this.weight/this.height/this.height;
8.    }
9. }
10.  
11. xiaoming=new Person(80,1.75);
12. console.log(xiaoming.getBMI());//输出BMI值

注意:此处的console.log函数与C语言的printf类似,输出调试信息。那么this关键字是什么意思呢?和C++的用法一致,请百度之。

本文分享自微信公众号 - 传输过程数值模拟学习笔记(SongSimStudio)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-07-24

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏WindCoder

《简明 Python 教程》学习笔记-控制流

1.为内建的raw_input函数提供一个字符串,这个字符串被打印在屏幕上,然后等待用户的输入。一旦我们输入一些东西,然后按回车键之后,函数返回输入。对于raw...

7800
来自专栏IMWeb前端团队

JavaScript强化教程——使用误区

本文为 H5EDU 机构官方 HTML5教程,主要介绍:JavaScript强化教程 —— 使用误区 JavaScript使用误区 本章节我们将讨论 JavaS...

21260
来自专栏余林丰

Java中的Object、T(泛型)、?区别

因为最近重新看了泛型,又看了些反射,导致我对Object、T(以下代指泛型)、?产生了疑惑。 我们先来试着理解一下Object类,学习Java的应该都知道Obj...

300100
来自专栏javascript趣味编程

2.2.1 js基本语法

1. var b=true;//定义布尔变量b,并赋值为true,js注释与C/C++完全相同,此处不详述

16020
来自专栏测试开发架构之路

总结了一些指针易出错的常见问题(一)

  简介:计算机是如何从内存单元中存取数据的呢?从程序设计的角度看,有两种办法:一是通过变量名;二是通过地址。程序中声明的变量是要占据一定的内存空间的,例如,C...

37390
来自专栏ImportSource

厕读:每日一题,面试无忧

4. 下列说法正确的有() A. class中的constructor不可省略 B. constructor必须与class同名,但方法不能与class同名 C...

29460
来自专栏java一日一条

Swift 中的内存管理详解

这篇文章是在阅读《The Swift Programming Language》Automatic Reference Counting(ARC,自动引用计数)...

16610
来自专栏java一日一条

Java 中 Varargs 机制的理解

J2SE 1.5提供了“Varargs”机制。借助这一机制,可以定义能和多个实参相匹配的形参。从而,可以用一种更简单的方式,来传递个数可变的实参。本文介绍这一机...

13530
来自专栏企鹅号快讯

Python类与面向对象

面向对象程序 程序 = 指令 + 数据 代码可以选择以指令为核心或以数据为核心进行编程 两种范例 1.以指令为核心:围绕"正在发生什么"编写 面向过程编程:程序...

29780
来自专栏Android开发指南

6:异常处理

31580

扫码关注云+社区

领取腾讯云代金券