昨天写了篇React.js的开头之作,讲了讲块级作用域和let,先安利:https://github.com/ddwhan0123/Useful-Open-Source-Android
上一篇的传送门:http://blog.csdn.net/ddwhan0123/article/details/52681169
这里补充下语法环境皆为 ES6
const类似于java中的 常量,申明了值就不允许改变。
申明了 就必须立马赋值 不然会 抛SyntaxError: Missing initializer in const declaration
赋值语句和普通变量没什么区别
const Wjj = 10086;const和let一样,也只能在所在的{}范围内有效,超出了也会抛出Uncaught ReferenceError: Wjj is not defined
和let一样 他也必须先申明,后使用。
const如果申明的是一个非基本数据类型,那么他会指向一个地址,但是这个地址的数据是可变的。
要怎么改变常量的值可以用
const wjj = [];通过改变数组里元素的值来改变常量的值
第一眼看到给我的感觉像 java8的lambda 表达式,实际上也差不多,让我们来看看具体是怎么回事
他其实也就是 一种function(){}的简写,结构如下
([param] [, param]) => { statements } param => expression参数不是必须的,返回值也不是必须的,你可以根据自己的需要做出组合。
//无参数,无返回值 () => { console.log( 'wjj' ) } //一个参数可以省略 () x => { console.log( x )} ; // 多参数不能省略 () (x, y) => { console.log( x + y ) } ; //和普通函数一样,箭头函数也可以使用 ES6 的“默认参数”形式 var wjj = (x = 1, y = 2) => x + y; wjj(); //结果等于 3 //多行语句要用 {} 括起来;单行表达式不需要 {} x => { return x * x }; x=> x+x; 但是 x=> return x+x;会报错React.PropTypes 提供很多验证器 (validator) 来验证传入数据的有效性。当向 props 传入无效数据时,JavaScript 控制台会抛出警告。类似于RxJava的.fliter()。
接下来用一个简单的例子来解释下这个属性
<!DOCTYPE html> <html> <head> <script src="../build/react.js"></script> <script src="../build/react-dom.js"></script> <script src="../build/browser.min.js"></script> </head> <body> <div id="example"></div> <script type="text/babel"> var TestPro=React.createClass({ propTypes: { title: React.PropTypes.string.isRequired, }, render: function() { return <h1> {this.props.title} </h1> } }); ReactDOM.render( <TestPro title="hi" />, document.getElementById('example') ); </script> </body> </html>这里定义了一个TestPro组件,我们设定了他的title属性必须为string类型,我们在调用装载这个组件的时候传入了’hi’,效果如下
如果传入不合法值的时候就会报错了