JS_javascript のヒントで eval に括弧を追加する理由

WBOY
リリース: 2016-05-16 15:05:40
オリジナル
1656 人が閲覧しました

評価の概要

---eval は ECMA 定義のグローバル オブジェクト プロトタイプのメソッドです。

--- eval で受け入れられるパラメータは文字列形式の js コードです。この文字列は実行エンジンによって実行され (「高度なプログラミング」と述べたことを思い出してください。この時点で新しい実行エンジンを作成します)、戻ります。結果は eval が呼び出される場所に渡されます。

<!DOCTYPE html>
<html>
<head>
<title>eval学习</title>
<script type="text/javascript">
/*
eval("表达式");执行表达式语句
eval("("+javascript类型+")");转为javascript对象
*/
var jsonObj={"name":"ljl","data":123};//json,是javascript的对象
var jsonString='{"name":"ljl","data":123}';//javascript的string类型,字符串内容符合json格式的样式
var objType=eval("("+jsonString+")");//通过eval函数将json字符转为javascript对象
alert( typeof jsonString);//string
alert( typeof objType);//obj
alert(eval(123));//123
alert(typeof eval("("+123+")"));//number
var x=2;
var y=eval('x+1');//执行 2+1 表达式
alert('y= '+y);//3
</script>
</head> 
<body>
</body>
</html>
ログイン後にコピー

追加: 概要

eval は js の動的機能の 1 つで、js プログラムを直接実行して結果を返すことができます。一般的な用途は、json データを js オブジェクトに復元することです。


ただし、実行時にコンテキスト オブジェクトを動的に変更できるため、インジェクション攻撃のリスクが伴います。


これを使用するときは、eval が文字列の構文をどのように理解するかに注意してください。よくある問題は「中括弧」の問題です。


関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート