AngularJS表达式与JavaScript表达式的区别
本文将介绍AngularJS表达式和JavaScript表达式,并通过示例理解它们的基本实现,以及它们之间的区别。
AngularJS表达式: 在AngularJS中,表达式用于将应用程序数据绑定到HTML。Angular解析这些表达式,并将结果返回到写有表达式的地方。在AngularJS中,表达式用双花括号{{ expression }}编写。它们的行为类似于ng-bind指令:ng-bind=”expression”。例如,下面是一些表达式。
<div>
3 + 3= {{3 + 3}}
3 - 3 = {{3 - 3}}
3 * 3 = {{3 * 3}}
3 / 3 = {{3 / 3}}
</div>
示例: 此示例描述了Angular JS的表达式。
<!DOCTYPE html>
<html>
<head>
<script src=
"https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.min.js">
</script>
<title>AngularJS Introduction</title>
</head>
<body style="text-align: center">
<h2 style="color: green">
AngularJS Expressions
</h2>
<div ng-app=""
ng-init="name='GeeksforGeeks'">
<p>{{ name }} is a portal for geeks.</p>
</div>
</body>
</html>
输出:
JavaScript表达式: 如果一组有效的 文字 、 变量 、 运算符 和计算一个表达式的表达式的集合。这个计算的单值可以是一个 数字 、一个 字符串 或一个 逻辑值 ,取决于表达式。根据这个概念,有两种类型的表达式。
将一个值赋给一个变量:
x = 11
仅仅有一个值:
22 + 11
JavaScript有以下几种表达式类型:
- 算术表达式: 这些表达式计算一个数字。
- 逻辑表达式: 这些表达式计算真或假。
- 字符串表达式: 这些表达式计算一个字符串,例如,“Geek”或“987”。
请参考 JavaScript表达式完全参考指南 文章中关于JavaScript表达式的详细说明。
注意: 特殊关键字 null 表示一个空值。
示例: 此示例描述了JavaScript中的基本表达式。
<script>
function callAdd(x, y){
let z = x + y;
return z;
}
console.log("Addition : " + callAdd(7, 4));
</script>
输出:
Addition : 11
Angular表达式和JavaScript表达式的区别:
参数 | Angularjs表达式 | JavaScript表达式 |
---|---|---|
上下文(Context) | Angular表达式根据作用域单次计算。 | JavaScript表达式根据全局窗口计算。 |
宽容(Forgiving) | 在Angular中,表达式计算时对undefined和null是宽容的。 | JavaScript表达式会试图计算undefined属性,并生成ReferenceError或TypeError。 |
控制流语句(Control Flow Statements) | 在AngularJS表达式中不能使用控制流语句,即循环、条件或异常。 | 控制流语句可以在JavaScript表达式中使用。 |
函数声明(Function Declarations) | Angular表达式不允许函数声明,即使在ng-init指令中也不可以。 | 在JavaScript表达式中允许函数声明。 |
位操作、逗号、void运算符(Bitwise, Comma, And Void Operators) | 在Angular表达式中,不能使用位操作或void运算符。 | 在JavaScript表达式中,可以使用位操作或void运算符。 |
过滤器(Filter) | Angular表达式可以使用过滤器。 | JavaScript表达式不支持使用过滤器。 |
单次绑定(One time binding) | AngularJS支持单次绑定。要创建单次绑定,请使用 :: 表达式。 | JavaScript表达式不允许单次绑定。 |