JS有哪些语法?
一、变量声明
JS中使用var、let和const关键字声明变量。代码如下:
var name = "JavaScript";let age = 20;const PI = 3.14;
二、数据类型
JS有以下几种基本数据类型:
基本数据类型:字符串类型(string)、数值类型(number)、布尔类型(boolean)、undefined、null。引用数据类型:对象(object)、函数(function)、数组(array)。字符串类型:必须要由成对的单引号或双引号包起来。内容可以是任意文本,只要不包含包围字符串的引号就可以。如果一定要包含,则用反斜杠转义。数值类型:可以带小数点,也可以不带小数点。布尔类型:只有两个值:true,false。undefined:表示声明的变量没有值。null:用来表示尚未存在的对象。代码如下:
let name = "JavaScript";let age = 20;let isStudent = true;let obj = { prop1: "value1", prop2: "value2"};let empty = null;let notDefined;
三、运算符
JS支持传统的算术运算符,例如加减乘除和取余数。还有比较运算符(==、!=、>、<、>=和<=),逻辑运算符(&&、||、!)等。
算术运算符:+、-、*、/、%(取余)、++(递增)、–(递减)。代码如下:
alert( 10 / 4 ); //2.5alert( 10 % 4 ); //2// 取余的结果正负取决于 % 前面的值(面试会问)var i = 3;i++;alert( 'i =' + i ); // i=4var m = 3,n;n = m++;alert('m='+m+',n='+n); // m= 4,n=3var m = 3, n;n = ++m;alert('m='+m+',n='+n); // m= 4,n=4var x = 4,y = 5;var z = x++ + y++;alert('x='+ x ); // 5alert('y='+ y ); // 6alert('z='+ z ); // 9var a = 3; var b = a++ + ++a + a++;alert('a='+a +',b='+b ); // a=6,b=13// ++在后面,先取变量的值,把取到的值赋给左边的变量,然后变量自己再增1// ++在前面,变量先加1,然后再赋值
赋值运算符:=、+=、-=、*=、/=、%=。代码如下:
var a += 5; // a = a+5var a *= 5; // a = a * 5
+运算符:可用于把字符串变量连接起来(求和,拼接)。代码如下:
var a = 6;var s= 'hello';var b = true;alert( a + s + b ); // 6 hello truealert( s + a + a); // hello66alert( a + a + s ); // 12hello
逻辑运算符:&&、||、!。代码如下:
var h5 = 56, js = 67;var r = h5 >= 60 && js <= 60;alert( r ); // false var r2 = h5 >= 60 || js >=60;alert( r2 ); // true var r3 = !(h5 > 60);alert(r3); // true var a = 5, b = 6;alert( a < 1 && ++b > 5 ); // falsealert(b); // 5 (&&是短路运算符,全真才为真左边的a < 1 已经是false,所以他不去计算右边了,所以b = 6) var a = 1 && 2+2;alert(a); // 4 (因为左边为真,所以会继续去看右边) var a = 0 && 2 + 2;alert(a); // 0 (因为0转布尔值为false,左边为假,所以不会去看右边) var a = 5,b = 6;alert( a || ++b); // truealert( b ); // 6 (左边的为true,不再去计算右边) alert(3 && 6); //6alert(0 && 6); //0// 如果左右两边都为数值,0相当于false,非0相当于true alert('hello' && 'world'); //worldalert('' && 'word'); //””// 空字符串相等于false,非空字符串相当于true
四、函数
JS中函数是一种可以重复使用的代码块,用于执行特定的任务。我们可以使用function关键字来定义函数,函数可以有参数和返回值。代码如下:
function add(a, b) { return a + b;}
五、强制转换
强制转换主要指使用Number、String和Boolean三个构造函数,手动将各种类型的值,转换成数字、字符串或者布尔值。
1、Number强制转换
参数为原始类型值的转换规则为原始类型的值主要是字符串、布尔值、undefined和null,它们都能被Number转成数值或NaN。NaN:not a number,当数学计算得不到数字结果时,该值就是NaN。isNaN:判断变量是否为NaN。代码如下:
// 数值:转换后还是原来的值var num = Number(324);alert(typeof num + num); // number 324// 数值:转换后还是原来的值var num = Number(324);alert(typeof num + num); //number 324// 字符串:如果可以被解析为数值,则转换为相应的数值Number('324') // 324var num =Number('324');alert(typeof num + num); //number 324// 字符串:如果不可以被解析为数值,返回NaNvar num =Number('324abc');alert(typeof num + num); //number NaN// 空字符串转为0var num =Number('');alert(typeof num + num); //number 0// 布尔值:true 转成1,false 转成0var num = Number(true);alert(typeof num + num); //number 1var num = Number(false);alert(typeof num + num); //number 0// undefined:转成 NaNNumber(undefined) // NaNvar num =Number(undefined );alert(typeof num + num); //number NaN// null:转成0 var num =Number(null);alert(typeof num + num); //number 0
Number函数将字符串转为数值,要比parseInt函数严格很多。基本上,只要有一个字符无法转成数值,整个字符串就会被转为NaN。
参数为对象的转换规则为Number方法的参数是对象时,将返回NaN。代码如下:
Number({a: 1}) // NaNNumber([1, 2, 3]) // NaN var obj = Number ({});alert(typeof obj + obj); // number NaNvar num = Number([]);alert(typeof num + num); //number 0
实际上,Number背后的真正规则复杂得多,内部处理步骤如下:
调用对象自身的valueOf方法。如果返回原始类型的值,则直接对该值使用Number函数,不再进行后续步骤。如果valueOf方法返回的还是对象,则改为调用对象自身的toString方法。如果返回原始类型的值,则对该值使用Number函数,不再进行后续步骤。如果toString方法返回的是对象,就报错。2、String强制转换
参数为原始类型值的转换规则为数值转为相应的字符串;字符串转换后还是原来的值;布尔值true转为“true”,false转为“false”;undefined转为“undefined”;null转为“null”。代码如下:
var str = String(123.234);alert(typeof(str)+ str); // string 123.234var str = String('he');alert(typeof(str)+ str); // string hevar str = String(true);alert(typeof(str)+ str); // string truevar str = String(false);alert(typeof(str)+ str); // string falsevar str = String(undefined);alert(typeof(str)+ str); // string undefinedvar str = String(unll);alert(typeof(str)+ str); // string null
参数为对象的转换规则为String方法的参数如果是对象,返回一个类型字符串;如果是数组,返回该数组的字符串形式。代码如下:
var str = String({});alert(typeof(str)+ str); // string [object Object]var str = String([1,3]);alert(typeof (str)+ str); // string 1,3
String内部处理步骤如下:
先调用对象自身的toString方法。如果返回原始类型的值,则对该值使用String函数,不再进行以下步骤。如果toString方法返回的是对象,再调用valueOf方法。如果返回原始类型的值,则对该值使用String函数,不再进行以下步骤。如果valueOf方法返回的是对象,就报错。3、Boolean强制转换
参数为原始类型值的转换规则为除了undefined、null、-0、0或+0、NaN、’ ‘(空字符串)这六个值的转换结果为false,其他的值全部为true。代码如下:
var num = Boolean('');alert(typeof(num) + unm); // boolean false
参数为对象的转换规则为所有对象(包括空对象)的转换结果都是true。代码如下:
var num = Boolean([]);alert(typeof(num) + unm); // boolean true
六、条件语句
JS中使用if语句来执行条件语句,可以根据条件的真假执行不同的代码块。代码如下:
let age = 20;if (age >= 18) { console.log("成年人");} else { console.log("未成年人");}
七、循环语句
JS中使用for和while循环语句来重复执行代码块。代码如下:
for (let i = 0; i < 10; i++) { console.log(i);}let i = 0;while(i < 10) { console.log(i); i++;}
延伸阅读1:JS简介
JavaScript(简称“JS”)是一种具有函数优先的轻量级,解释型或即时编译型的编程语言。虽然它是作为开发Web页面的脚本语言而出名,但是它也被用到了很多非浏览器环境中,JavaScript基于原型编程、多范式的动态脚本语言,并且支持面向对象、命令式、声明式、函数式编程范式。

相关推荐HOT
更多>>
如何使用Pandas处理Excel?
如何使用Pandas处理Excel?做过行政或者人事,或者对此有过了解的小伙伴,一定对下发各个部分的表有着非常深刻的印象,最常见的就是需要我们将一...详情>>
2023-11-14 07:43:15
python中np.insert()函数的使用方法
python中np.insert()函数的使用方法在numpy数组操作中,np.append()方法可以在每行每列的最后添加数据,但其位置是规定的,那如果想要指定添加...详情>>
2023-11-14 05:06:13
SVM在python中的原理如何理解?
SVM在python中的原理如何理解?在python中除了编程化的知识点外,对于数学方法的算法也有所涉及,SVM就是一种很好地体现。我们学习过数学中的坐...详情>>
2023-11-14 04:30:04
python处理绝对路径和相对路径函数有哪些?
python处理绝对路径和相对路径函数有哪些?绝对路径和相对路径是什么?绝对路径:从根文件夹开始,Windows系统以盘符(C:)作为根文件夹,OSX或Lin...详情>>
2023-11-14 03:33:02热门推荐
如何使用python any()判断多元素?
沸如何使用Pandas处理Excel?
热python函数中的参数有哪些?
热python中pygal模块如何使用?
新Python的excel处理操作
python中doctest库是什么?
python中series是什么意思
python中np.insert()函数的使用方法
SVM在python中的原理如何理解?
Python描述符中有哪三种方法?
python处理绝对路径和相对路径函数有哪些?
python单继承和多继承如何定义?
python封装中的私有如何理解?
python模块引入的三种方式
技术干货






