@script RequireComponent(NetworkView)

What does it actually mean the @ in JS? Is it a comment?

It’s called an attribute - the @ sign is a kind of mnemonic for that. Attributes have various uses, but they are basically a way to attach a little bit of extra information to a script, class, function or variable. Unity defines a few attributes - the RequireComponent attribute just tells Unity that a particular component (eg, Rigidbody, MeshFilter…) must be added in order for the script to work. You can actually define your own attributes in a script, but most script code won’t need to do that.

UnityScript is proprietary(not javascript), thus you find not an ‘@’ directive in javascript but you do in UnityScript.
I am not sure yet how the ‘@’ directive works in UnityScript.
I may work like the ‘@’ directive on an HTML page does, but of course limited to the Unity context.
I am assuming it checks if the component named is present already and/or adds it if missing, or kicks out an error if missing to let developper know to add it.

It may work like the javascript directive:
<script type=“text/javascript” …>

The .NET runtime allows you to mark certain entities in the code (classes, functions, variables, etc) with attributes. These are pieces of data that are attached to the entity itself in the source code and can be queried with a special API. Generally, they are used to activate special settings that Unity can apply. For example, if a class is marked with ExecuteInEditMode, Unity will call its Update function in the editor as well as the running game.